chore: regens API reference docs (#889)

diff --git a/docs/dyn/sheets_v4.spreadsheets.html b/docs/dyn/sheets_v4.spreadsheets.html
index 8a7afa8..954c863 100644
--- a/docs/dyn/sheets_v4.spreadsheets.html
+++ b/docs/dyn/sheets_v4.spreadsheets.html
@@ -90,20 +90,20 @@
 <p class="firstline">Returns the values Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#batchUpdate">batchUpdate(spreadsheetId, body, x__xgafv=None)</a></code></p>
+  <code><a href="#batchUpdate">batchUpdate(spreadsheetId, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Applies one or more updates to the spreadsheet.</p>
 <p class="toc_element">
-  <code><a href="#create">create(body, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a spreadsheet, returning the newly created spreadsheet.</p>
 <p class="toc_element">
   <code><a href="#get">get(spreadsheetId, ranges=None, includeGridData=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns the spreadsheet at the given ID.</p>
 <p class="toc_element">
-  <code><a href="#getByDataFilter">getByDataFilter(spreadsheetId, body, x__xgafv=None)</a></code></p>
+  <code><a href="#getByDataFilter">getByDataFilter(spreadsheetId, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns the spreadsheet at the given ID.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="batchUpdate">batchUpdate(spreadsheetId, body, x__xgafv=None)</code>
+    <code class="details" id="batchUpdate">batchUpdate(spreadsheetId, body=None, x__xgafv=None)</code>
   <pre>Applies one or more updates to the spreadsheet.
 
 Each request is validated before
@@ -126,18 +126,18 @@
 
 Args:
   spreadsheetId: string, The spreadsheet to apply the updates to. (required)
-  body: object, The request body. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # The request for updating any aspect of a spreadsheet.
     "responseRanges": [ # Limits the ranges included in the response spreadsheet.
-        # Meaningful only if include_spreadsheet_response is 'true'.
+        # Meaningful only if include_spreadsheet_in_response is 'true'.
       "A String",
     ],
     "includeSpreadsheetInResponse": True or False, # Determines if the update response should include the spreadsheet
         # resource.
     "responseIncludeGridData": True or False, # True if grid data should be returned. Meaningful only if
-        # if include_spreadsheet_in_response is 'true'.
+        # include_spreadsheet_in_response is 'true'.
         # This parameter is ignored if a field mask was set in the request.
     "requests": [ # A list of updates to apply to the spreadsheet.
         # Requests will be applied in the order they are specified.
@@ -185,52 +185,561 @@
           "sortSpecs": [ # The sort order per column. Later specifications are used when values
               # are equal in the earlier specifications.
             { # A sort order associated with a specific column or row.
+              "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to sort by; cells with this foreground color are
+                  # sorted to the top. Mutually exclusive with background_color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to sort by; cells with this fill color are sorted
+                  # to the top. Mutually exclusive with foreground_color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "foregroundColorStyle": { # A color value. # The foreground color to sort by; cells with this foreground color are
+                  # sorted to the top. Mutually exclusive with background_color, and must
+                  # be an RGB-type color. If foreground_color is also set, this field takes
+                  # precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "backgroundColorStyle": { # A color value. # The background fill color to sort by; cells with this fill color are sorted
+                  # to the top. Mutually exclusive with foreground_color, and must be an
+                  # RGB-type color. If background_color is also set, this field takes
+                  # precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
               "sortOrder": "A String", # The order data should be sorted.
               "dimensionIndex": 42, # The dimension the sort should be applied to.
             },
           ],
         },
-        "textToColumns": { # Splits a column of text into multiple columns, # Converts a column of text into many columns of text.
-            # based on a delimiter in each cell.
-          "source": { # A range on a sheet. # The source data range.  This must span exactly one column.
-              # All indexes are zero-based.
-              # Indexes are half open, e.g the start index is inclusive
-              # and the end index is exclusive -- [start_index, end_index).
-              # Missing indexes indicate the range is unbounded on that side.
-              #
-              # For example, if `"Sheet1"` is sheet ID 0, then:
-              #
-              #   `Sheet1!A1:A1 == sheet_id: 0,
-              #                   start_row_index: 0, end_row_index: 1,
-              #                   start_column_index: 0, end_column_index: 1`
-              #
-              #   `Sheet1!A3:B4 == sheet_id: 0,
-              #                   start_row_index: 2, end_row_index: 4,
-              #                   start_column_index: 0, end_column_index: 2`
-              #
-              #   `Sheet1!A:B == sheet_id: 0,
-              #                 start_column_index: 0, end_column_index: 2`
-              #
-              #   `Sheet1!A5:B == sheet_id: 0,
-              #                  start_row_index: 4,
-              #                  start_column_index: 0, end_column_index: 2`
-              #
-              #   `Sheet1 == sheet_id:0`
-              #
-              # The start index must always be less than or equal to the end index.
-              # If the start index equals the end index, then the range is empty.
-              # Empty ranges are typically not meaningful and are usually rendered in the
-              # UI as `#REF!`.
-            "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-            "sheetId": 42, # The sheet this range is on.
-            "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-          },
-          "delimiter": "A String", # The delimiter to use. Used only if delimiterType is
-              # CUSTOM.
-          "delimiterType": "A String", # The delimiter type to use.
-        },
         "updateEmbeddedObjectPosition": { # Update an embedded object's position (such as a moving or resizing a # Updates an embedded object's (e.g. chart, image) position.
             # chart or image).
           "newPosition": { # The position of an embedded object such as a chart. # An explicit position to move the embedded object to.
@@ -249,9 +758,9 @@
                 "columnIndex": 42, # The column index of the coordinate.
                 "sheetId": 42, # The sheet this coordinate is on.
               },
-              "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
               "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
                   # from the anchor cell.
+              "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
               "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
                   # from the anchor cell.
               "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
@@ -266,102 +775,8 @@
               # A single `"*"` can be used as short-hand for listing every field.
           "objectId": 42, # The ID of the object to moved.
         },
-        "addFilterView": { # Adds a filter view. # Adds a filter view.
-          "filter": { # A filter view. # The filter to add. The filterViewId
-              # field is optional; if one is not set, an id will be randomly generated. (It
-              # is an error to specify the ID of a filter that already exists.)
-            "title": "A String", # The name of the filter view.
-            "namedRangeId": "A String", # The named range this filter view is backed by, if any.
-                #
-                # When writing, only one of range or named_range_id
-                # may be set.
-            "filterViewId": 42, # The ID of the filter view.
-            "range": { # A range on a sheet. # The range this filter view covers.
-                #
-                # When writing, only one of range or named_range_id
-                # may be set.
-                # All indexes are zero-based.
-                # Indexes are half open, e.g the start index is inclusive
-                # and the end index is exclusive -- [start_index, end_index).
-                # Missing indexes indicate the range is unbounded on that side.
-                #
-                # For example, if `"Sheet1"` is sheet ID 0, then:
-                #
-                #   `Sheet1!A1:A1 == sheet_id: 0,
-                #                   start_row_index: 0, end_row_index: 1,
-                #                   start_column_index: 0, end_column_index: 1`
-                #
-                #   `Sheet1!A3:B4 == sheet_id: 0,
-                #                   start_row_index: 2, end_row_index: 4,
-                #                   start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A:B == sheet_id: 0,
-                #                 start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A5:B == sheet_id: 0,
-                #                  start_row_index: 4,
-                #                  start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1 == sheet_id:0`
-                #
-                # The start index must always be less than or equal to the end index.
-                # If the start index equals the end index, then the range is empty.
-                # Empty ranges are typically not meaningful and are usually rendered in the
-                # UI as `#REF!`.
-              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-              "sheetId": 42, # The sheet this range is on.
-              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-            },
-            "sortSpecs": [ # The sort order per column. Later specifications are used when values
-                # are equal in the earlier specifications.
-              { # A sort order associated with a specific column or row.
-                "sortOrder": "A String", # The order data should be sorted.
-                "dimensionIndex": 42, # The dimension the sort should be applied to.
-              },
-            ],
-            "criteria": { # The criteria for showing/hiding values per column.
-                # The map's key is the column index, and the value is the criteria for
-                # that column.
-              "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
-                "hiddenValues": [ # Values that should be hidden.
-                  "A String",
-                ],
-                "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
-                    # (This does not override hiddenValues -- if a value is listed there,
-                    #  it will still be hidden.)
-                    # BooleanConditions are used by conditional formatting,
-                    # data validation, and the criteria in filters.
-                  "values": [ # The values of the condition. The number of supported values depends
-                      # on the condition type.  Some support zero values,
-                      # others one or two values,
-                      # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
-                    { # The value of the condition.
-                      "relativeDate": "A String", # A relative date (based on the current date).
-                          # Valid only if the type is
-                          # DATE_BEFORE,
-                          # DATE_AFTER,
-                          # DATE_ON_OR_BEFORE or
-                          # DATE_ON_OR_AFTER.
-                          #
-                          # Relative dates are not supported in data validation.
-                          # They are supported only in conditional formatting and
-                          # conditional filters.
-                      "userEnteredValue": "A String", # A value the condition is based on.
-                          # The value is parsed as if the user typed into a cell.
-                          # Formulas are supported (and must begin with an `=` or a '+').
-                    },
-                  ],
-                  "type": "A String", # The type of condition.
-                },
-              },
-            },
-          },
-        },
         "updateConditionalFormatRule": { # Updates a conditional format rule at the given index, # Updates an existing conditional format rule.
             # or moves a conditional format rule to another index.
-          "index": 42, # The zero-based index of the rule that should be replaced or moved.
           "rule": { # A rule describing a conditional format. # The rule that should replace the rule at the given index.
             "ranges": [ # The ranges that are formatted if the condition is true.
                 # All the ranges must be on the same grid.
@@ -432,8 +847,15 @@
                   # Conditional formatting can only apply a subset of formatting:
                   # bold, italic,
                   # strikethrough,
-                  # foreground color &
+                  # foreground color &amp;
                   # background color.
+                "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                    # When updating padding, every field must be specified.
+                  "top": 42, # The top padding of the cell.
+                  "left": 42, # The left padding of the cell.
+                  "right": 42, # The right padding of the cell.
+                  "bottom": 42, # The bottom padding of the cell.
+                },
                 "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                   "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                       # the user's locale will be used if necessary for the given type.
@@ -443,12 +865,143 @@
                       # When writing, this field must be set.
                 },
                 "textDirection": "A String", # The direction of the text in the cell.
-                "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                    # When updating padding, every field must be specified.
-                  "top": 42, # The top padding of the cell.
-                  "left": 42, # The left padding of the cell.
-                  "right": 42, # The right padding of the cell.
-                  "bottom": 42, # The bottom padding of the cell.
+                "backgroundColorStyle": { # A color value. # The background color of the cell.
+                    # If background_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
                 },
                 "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                 "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -521,14 +1074,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -558,11 +1111,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -658,14 +1211,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -695,11 +1248,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -724,284 +1277,144 @@
                     },
                     "width": 42, # The width of the border, in pixels.
                         # Deprecated; the width is determined by the "style" field.
-                    "style": "A String", # The style of the border.
-                  },
-                  "right": { # A border along a cell. # The right border of the cell.
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
                           #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
                           #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
                     },
-                    "width": 42, # The width of the border, in pixels.
-                        # Deprecated; the width is determined by the "style" field.
-                    "style": "A String", # The style of the border.
-                  },
-                  "bottom": { # A border along a cell. # The bottom border of the cell.
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                    },
-                    "width": 42, # The width of the border, in pixels.
-                        # Deprecated; the width is determined by the "style" field.
                     "style": "A String", # The style of the border.
                   },
                   "left": { # A border along a cell. # The left border of the cell.
@@ -1075,14 +1488,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -1112,11 +1525,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -1141,6 +1554,698 @@
                     },
                     "width": 42, # The width of the border, in pixels.
                         # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "style": "A String", # The style of the border.
+                  },
+                  "right": { # A border along a cell. # The right border of the cell.
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "width": 42, # The width of the border, in pixels.
+                        # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "style": "A String", # The style of the border.
+                  },
+                  "bottom": { # A border along a cell. # The bottom border of the cell.
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "width": 42, # The width of the border, in pixels.
+                        # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
                     "style": "A String", # The style of the border.
                   },
                 },
@@ -1238,14 +2343,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -1275,11 +2380,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -1303,6 +2408,144 @@
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
                   "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "strikethrough": True or False, # True if the text has a strikethrough.
                   "fontFamily": "A String", # The font family.
                   "fontSize": 42, # The size of the font.
@@ -1389,14 +2632,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -1426,11 +2669,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -1453,6 +2696,144 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "type": "A String", # How the value should be interpreted.
                 "value": "A String", # The value this interpolation point uses.  May be a formula.
                     # Unused if type is MIN or
@@ -1531,14 +2912,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -1568,11 +2949,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -1595,6 +2976,144 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "type": "A String", # How the value should be interpreted.
                 "value": "A String", # The value this interpolation point uses.  May be a formula.
                     # Unused if type is MIN or
@@ -1673,14 +3192,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -1710,11 +3229,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -1737,6 +3256,144 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "type": "A String", # How the value should be interpreted.
                 "value": "A String", # The value this interpolation point uses.  May be a formula.
                     # Unused if type is MIN or
@@ -1747,35 +3404,124 @@
           "sheetId": 42, # The sheet of the rule to move.  Required if new_index is set,
               # unused otherwise.
           "newIndex": 42, # The zero-based new index the rule should end up at.
+          "index": 42, # The zero-based index of the rule that should be replaced or moved.
         },
-        "updateDimensionGroup": { # Updates the state of the specified group. # Updates the state of the specified group.
+        "updateProtectedRange": { # Updates an existing protected range with the specified # Updates a protected range.
+            # protectedRangeId.
           "fields": "A String", # The fields that should be updated.  At least one field must be specified.
-              # The root `dimensionGroup` is implied and should not be specified.
+              # The root `protectedRange` is implied and should not be specified.
               # A single `"*"` can be used as short-hand for listing every field.
-          "dimensionGroup": { # A group over an interval of rows or columns on a sheet, which can contain or # The group whose state should be updated. The range and depth of the group
-              # should specify a valid group on the sheet, and all other fields updated.
-              # be contained within other groups. A group can be collapsed or expanded as a
-              # unit on the sheet.
-            "range": { # A range along a single dimension on a sheet. # The range over which this group exists.
-                # All indexes are zero-based.
-                # Indexes are half open: the start index is inclusive
-                # and the end index is exclusive.
-                # Missing indexes indicate the range is unbounded on that side.
-              "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
-              "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
-              "sheetId": 42, # The sheet this span is on.
-              "dimension": "A String", # The dimension of the span.
-            },
-            "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
-                # collapsed if an overlapping group at a shallower depth is expanded.
+          "protectedRange": { # A protected range. # The protected range to update with the new properties.
+            "unprotectedRanges": [ # The list of unprotected ranges within a protected sheet.
+                # Unprotected ranges are only supported on protected sheets.
+              { # A range on a sheet.
+                  # All indexes are zero-based.
+                  # Indexes are half open, e.g the start index is inclusive
+                  # and the end index is exclusive -- [start_index, end_index).
+                  # Missing indexes indicate the range is unbounded on that side.
+                  #
+                  # For example, if `"Sheet1"` is sheet ID 0, then:
+                  #
+                  #   `Sheet1!A1:A1 == sheet_id: 0,
+                  #                   start_row_index: 0, end_row_index: 1,
+                  #                   start_column_index: 0, end_column_index: 1`
+                  #
+                  #   `Sheet1!A3:B4 == sheet_id: 0,
+                  #                   start_row_index: 2, end_row_index: 4,
+                  #                   start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1!A:B == sheet_id: 0,
+                  #                 start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1!A5:B == sheet_id: 0,
+                  #                  start_row_index: 4,
+                  #                  start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1 == sheet_id:0`
+                  #
+                  # The start index must always be less than or equal to the end index.
+                  # If the start index equals the end index, then the range is empty.
+                  # Empty ranges are typically not meaningful and are usually rendered in the
+                  # UI as `#REF!`.
+                "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "sheetId": 42, # The sheet this range is on.
+                "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              },
+            ],
+            "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the
+                # protected area.
+                # This field is read-only.
+            "description": "A String", # The description of this protected range.
+            "namedRangeId": "A String", # The named range this protected range is backed by, if any.
                 #
-                # A true value does not imply that all dimensions within the group are
-                # hidden, since a dimension's visibility can change independently from this
-                # group property. However, when this property is updated, all dimensions
-                # within it are set to hidden if this field is true, or set to visible if
-                # this field is false.
-            "depth": 42, # The depth of the group, representing how many groups have a range that
-                # wholly contains the range of this group.
+                # When writing, only one of range or named_range_id
+                # may be set.
+            "protectedRangeId": 42, # The ID of the protected range.
+                # This field is read-only.
+            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
+                # This field is only visible to users with edit access to the protected
+                # range and the document.
+                # Editors are not supported with warning_only protection.
+              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
+                  # range.  Domain protection is only supported on documents within a domain.
+              "users": [ # The email addresses of users with edit access to the protected range.
+                "A String",
+              ],
+              "groups": [ # The email addresses of groups with edit access to the protected range.
+                "A String",
+              ],
+            },
+            "range": { # A range on a sheet. # The range that is being protected.
+                # The range may be fully unbounded, in which case this is considered
+                # a protected sheet.
+                #
+                # When writing, only one of range or named_range_id
+                # may be set.
+                # All indexes are zero-based.
+                # Indexes are half open, e.g the start index is inclusive
+                # and the end index is exclusive -- [start_index, end_index).
+                # Missing indexes indicate the range is unbounded on that side.
+                #
+                # For example, if `"Sheet1"` is sheet ID 0, then:
+                #
+                #   `Sheet1!A1:A1 == sheet_id: 0,
+                #                   start_row_index: 0, end_row_index: 1,
+                #                   start_column_index: 0, end_column_index: 1`
+                #
+                #   `Sheet1!A3:B4 == sheet_id: 0,
+                #                   start_row_index: 2, end_row_index: 4,
+                #                   start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A:B == sheet_id: 0,
+                #                 start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A5:B == sheet_id: 0,
+                #                  start_row_index: 4,
+                #                  start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1 == sheet_id:0`
+                #
+                # The start index must always be less than or equal to the end index.
+                # If the start index equals the end index, then the range is empty.
+                # Empty ranges are typically not meaningful and are usually rendered in the
+                # UI as `#REF!`.
+              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "sheetId": 42, # The sheet this range is on.
+              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            },
+            "warningOnly": True or False, # True if this protected range will show a warning when editing.
+                # Warning-based protection means that every user can edit data in the
+                # protected range, except editing will prompt a warning asking the user
+                # to confirm the edit.
+                #
+                # When writing: if this field is true, then editors is ignored.
+                # Additionally, if this field is changed from true to false and the
+                # `editors` field is not set (nor included in the field mask), then
+                # the editors will be set to all the editors in the document.
           },
         },
         "deleteDimension": { # Deletes the dimensions from the sheet. # Deletes rows or columns in a sheet.
@@ -1841,6 +3587,21 @@
                 #
                 # When writing, only one of range or named_range_id
                 # may be set.
+            "protectedRangeId": 42, # The ID of the protected range.
+                # This field is read-only.
+            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
+                # This field is only visible to users with edit access to the protected
+                # range and the document.
+                # Editors are not supported with warning_only protection.
+              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
+                  # range.  Domain protection is only supported on documents within a domain.
+              "users": [ # The email addresses of users with edit access to the protected range.
+                "A String",
+              ],
+              "groups": [ # The email addresses of groups with edit access to the protected range.
+                "A String",
+              ],
+            },
             "range": { # A range on a sheet. # The range that is being protected.
                 # The range may be fully unbounded, in which case this is considered
                 # a protected sheet.
@@ -1881,21 +3642,6 @@
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
               "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
-            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
-                # This field is only visible to users with edit access to the protected
-                # range and the document.
-                # Editors are not supported with warning_only protection.
-              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
-                  # range.  Domain protection is only supported on documents within a domain.
-              "users": [ # The email addresses of users with edit access to the protected range.
-                "A String",
-              ],
-              "groups": [ # The email addresses of groups with edit access to the protected range.
-                "A String",
-              ],
-            },
-            "protectedRangeId": 42, # The ID of the protected range.
-                # This field is read-only.
             "warningOnly": True or False, # True if this protected range will show a warning when editing.
                 # Warning-based protection means that every user can edit data in the
                 # protected range, except editing will prompt a warning asking the user
@@ -1907,6 +3653,36 @@
                 # the editors will be set to all the editors in the document.
           },
         },
+        "updateDimensionGroup": { # Updates the state of the specified group. # Updates the state of the specified group.
+          "fields": "A String", # The fields that should be updated.  At least one field must be specified.
+              # The root `dimensionGroup` is implied and should not be specified.
+              # A single `"*"` can be used as short-hand for listing every field.
+          "dimensionGroup": { # A group over an interval of rows or columns on a sheet, which can contain or # The group whose state should be updated. The range and depth of the group
+              # should specify a valid group on the sheet, and all other fields updated.
+              # be contained within other groups. A group can be collapsed or expanded as a
+              # unit on the sheet.
+            "depth": 42, # The depth of the group, representing how many groups have a range that
+                # wholly contains the range of this group.
+            "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
+                # collapsed if an overlapping group at a shallower depth is expanded.
+                #
+                # A true value does not imply that all dimensions within the group are
+                # hidden, since a dimension's visibility can change independently from this
+                # group property. However, when this property is updated, all dimensions
+                # within it are set to hidden if this field is true, or set to visible if
+                # this field is false.
+            "range": { # A range along a single dimension on a sheet. # The range over which this group exists.
+                # All indexes are zero-based.
+                # Indexes are half open: the start index is inclusive
+                # and the end index is exclusive.
+                # Missing indexes indicate the range is unbounded on that side.
+              "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
+              "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
+              "sheetId": 42, # The sheet this span is on.
+              "dimension": "A String", # The dimension of the span.
+            },
+          },
+        },
         "deleteEmbeddedObject": { # Deletes the embedded object with the given ID. # Deletes an embedded object (e.g, chart, image) in a sheet.
           "objectId": 42, # The ID of the embedded object to delete.
         },
@@ -1917,10 +3693,1895 @@
             "columnIndex": 42, # The column index of the coordinate.
             "sheetId": 42, # The sheet this coordinate is on.
           },
-          "type": "A String", # How the data should be pasted.
+          "data": "A String", # The data to insert.
           "delimiter": "A String", # The delimiter in the data.
           "html": True or False, # True if the data is HTML.
-          "data": "A String", # The data to insert.
+          "type": "A String", # How the data should be pasted.
+        },
+        "updateSpreadsheetProperties": { # Updates properties of a spreadsheet. # Updates the spreadsheet's properties.
+          "fields": "A String", # The fields that should be updated.  At least one field must be specified.
+              # The root 'properties' is implied and should not be specified.
+              # A single `"*"` can be used as short-hand for listing every field.
+          "properties": { # Properties of a spreadsheet. # The properties to update.
+            "title": "A String", # The title of the spreadsheet.
+            "locale": "A String", # The locale of the spreadsheet in one of the following formats:
+                #
+                # * an ISO 639-1 language code such as `en`
+                #
+                # * an ISO 639-2 language code such as `fil`, if no 639-1 code exists
+                #
+                # * a combination of the ISO language code and country code, such as `en_US`
+                #
+                # Note: when updating this field, not all locales/languages are supported.
+            "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
+            "spreadsheetTheme": { # Represents spreadsheet theme # Theme applied to the spreadsheet.
+              "themeColors": [ # The spreadsheet theme color pairs. To update you must provide all theme
+                  # color pairs.
+                { # A pair mapping a spreadsheet theme color type to the concrete color it
+                    # represents.
+                  "color": { # A color value. # The concrete color corresponding to the theme color type.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "colorType": "A String", # The type of the spreadsheet theme color.
+                },
+              ],
+              "primaryFontFamily": "A String", # / Name of the primary font family.
+            },
+            "defaultFormat": { # The format of a cell. # The default format of all cells in the spreadsheet.
+                # CellData.effectiveFormat will not be set if
+                # the cell's format is equal to this default format. This field is read-only.
+              "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                  # When updating padding, every field must be specified.
+                "top": 42, # The top padding of the cell.
+                "left": 42, # The left padding of the cell.
+                "right": 42, # The right padding of the cell.
+                "bottom": 42, # The bottom padding of the cell.
+              },
+              "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
+                "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
+                    # the user's locale will be used if necessary for the given type.
+                    # See the [Date and Number Formats guide](/sheets/api/guides/formats) for
+                    # more information about the supported patterns.
+                "type": "A String", # The type of the number format.
+                    # When writing, this field must be set.
+              },
+              "textDirection": "A String", # The direction of the text in the cell.
+              "backgroundColorStyle": { # A color value. # The background color of the cell.
+                  # If background_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
+              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+              "borders": { # The borders of the cell. # The borders of the cell.
+                "top": { # A border along a cell. # The top border of the cell.
+                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "width": 42, # The width of the border, in pixels.
+                      # Deprecated; the width is determined by the "style" field.
+                  "colorStyle": { # A color value. # The color of the border.
+                      # If color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "style": "A String", # The style of the border.
+                },
+                "left": { # A border along a cell. # The left border of the cell.
+                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "width": 42, # The width of the border, in pixels.
+                      # Deprecated; the width is determined by the "style" field.
+                  "colorStyle": { # A color value. # The color of the border.
+                      # If color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "style": "A String", # The style of the border.
+                },
+                "right": { # A border along a cell. # The right border of the cell.
+                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "width": 42, # The width of the border, in pixels.
+                      # Deprecated; the width is determined by the "style" field.
+                  "colorStyle": { # A color value. # The color of the border.
+                      # If color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "style": "A String", # The style of the border.
+                },
+                "bottom": { # A border along a cell. # The bottom border of the cell.
+                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "width": 42, # The width of the border, in pixels.
+                      # Deprecated; the width is determined by the "style" field.
+                  "colorStyle": { # A color value. # The color of the border.
+                      # If color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "style": "A String", # The style of the border.
+                },
+              },
+              "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                "angle": 42, # The angle between the standard orientation and the desired orientation.
+                    # Measured in degrees. Valid values are between -90 and 90. Positive
+                    # angles are angled upwards, negative are angled downwards.
+                    #
+                    # Note: For LTR text direction positive angles are in the
+                    # counterclockwise direction, whereas for RTL they are in the clockwise
+                    # direction
+                "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                    # characters is unchanged.
+                    # For example:
+                    #
+                    #     | V |
+                    #     | e |
+                    #     | r |
+                    #     | t |
+                    #     | i |
+                    #     | c |
+                    #     | a |
+                    #     | l |
+              },
+              "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
+              "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
+                  # Absent values indicate that the field isn't specified.
+                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "bold": True or False, # True if the text is bold.
+                "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                    # If foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "strikethrough": True or False, # True if the text has a strikethrough.
+                "fontFamily": "A String", # The font family.
+                "fontSize": 42, # The size of the font.
+                "italic": True or False, # True if the text is italicized.
+                "underline": True or False, # True if the text is underlined.
+              },
+              "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+            },
+            "iterativeCalculationSettings": { # Settings to control how circular dependencies are resolved with iterative # Determines whether and how circular references are resolved with iterative
+                # calculation.  Absence of this field means that circular references result
+                # in calculation errors.
+                # calculation.
+              "convergenceThreshold": 3.14, # When iterative calculation is enabled and successive results differ by
+                  # less than this threshold value, the calculation rounds stop.
+              "maxIterations": 42, # When iterative calculation is enabled, the maximum number of calculation
+                  # rounds to perform.
+            },
+            "timeZone": "A String", # The time zone of the spreadsheet, in CLDR format such as
+                # `America/New_York`. If the time zone isn't recognized, this may
+                # be a custom time zone such as `GMT-07:00`.
+          },
         },
         "appendCells": { # Adds new cells after the last row with data in a sheet, # Appends cells after the last row with data in a sheet.
             # inserting new rows into the sheet if necessary.
@@ -1982,15 +5643,15 @@
                             "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                 # (Note that formulaValue is not valid,
                                 #  because the values will be calculated.)
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
+                              "formulaValue": "A String", # Represents a formula.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
@@ -2004,7 +5665,7 @@
                             # If not specified, sorting is alphabetical by this group's values.
                           "buckets": [ # Determines the bucket from which values are chosen to sort.
                               #
-                              # For example, in a pivot table with one row group & two column groups,
+                              # For example, in a pivot table with one row group &amp; two column groups,
                               # the row group can list up to two values. The first value corresponds
                               # to a value within the first column group, and the second value
                               # corresponds to a value in the second column group.  If no values
@@ -2012,15 +5673,15 @@
                               # to the "Grand Total" over the column groups. If a single value is listed,
                               # this would correspond to using the "Total" of that bucket.
                             { # The kinds of value that a cell in a spreadsheet can have.
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
+                              "formulaValue": "A String", # Represents a formula.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
@@ -2033,6 +5694,11 @@
                               # grouping should be sorted by.
                         },
                         "sortOrder": "A String", # The order the values in this group should be sorted.
+                        "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
+                            #
+                            # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                            # means this group refers to column `C`, whereas the offset `1` would
+                            # refer to column `D`.
                         "groupRule": { # An optional setting on a PivotGroup that defines buckets for the values # The group rule to apply to this row/column group.
                             # in the source data column rather than breaking out each individual value.
                             # Only one PivotGroup with a group rule may be added for each column in
@@ -2065,10 +5731,10 @@
                               #     +-------------+-------------------+
                               #     | Grouped Age | AVERAGE of Amount |
                               #     +-------------+-------------------+
-                              #     | < 25        |            $19.34 |
+                              #     | &lt; 25        |            $19.34 |
                               #     | 25-45       |            $31.43 |
                               #     | 45-65       |            $35.87 |
-                              #     | > 65        |            $27.55 |
+                              #     | &gt; 65        |            $27.55 |
                               #     +-------------+-------------------+
                               #     | Grand Total |            $29.12 |
                               #     +-------------+-------------------+
@@ -2115,15 +5781,15 @@
                                     # group within a given ManualRule. Items that do not appear in any
                                     # group will appear on their own.
                                   { # The kinds of value that a cell in a spreadsheet can have.
-                                    "numberValue": 3.14, # Represents a double value.
-                                        # Note: Dates, Times and DateTimes are represented as doubles in
-                                        # "serial number" format.
-                                    "boolValue": True or False, # Represents a boolean value.
-                                    "formulaValue": "A String", # Represents a formula.
                                     "stringValue": "A String", # Represents a string value.
                                         # Leading single quotes are not included. For example, if the user typed
                                         # `'123` into the UI, this would be represented as a `stringValue` of
                                         # `"123"`.
+                                    "boolValue": True or False, # Represents a boolean value.
+                                    "numberValue": 3.14, # Represents a double value.
+                                        # Note: Dates, Times and DateTimes are represented as doubles in
+                                        # "serial number" format.
+                                    "formulaValue": "A String", # Represents a formula.
                                     "errorValue": { # An error in a cell. # Represents an error.
                                         # This field is read-only.
                                       "message": "A String", # A message with more information about the error
@@ -2134,15 +5800,15 @@
                                 ],
                                 "groupName": { # The kinds of value that a cell in a spreadsheet can have. # The group name, which must be a string. Each group in a given
                                     # ManualRule must have a unique group name.
-                                  "numberValue": 3.14, # Represents a double value.
-                                      # Note: Dates, Times and DateTimes are represented as doubles in
-                                      # "serial number" format.
-                                  "boolValue": True or False, # Represents a boolean value.
-                                  "formulaValue": "A String", # Represents a formula.
                                   "stringValue": "A String", # Represents a string value.
                                       # Leading single quotes are not included. For example, if the user typed
                                       # `'123` into the UI, this would be represented as a `stringValue` of
                                       # `"123"`.
+                                  "boolValue": True or False, # Represents a boolean value.
+                                  "numberValue": 3.14, # Represents a double value.
+                                      # Note: Dates, Times and DateTimes are represented as doubles in
+                                      # "serial number" format.
+                                  "formulaValue": "A String", # Represents a formula.
                                   "errorValue": { # An error in a cell. # Represents an error.
                                       # This field is read-only.
                                     "message": "A String", # A message with more information about the error
@@ -2179,11 +5845,6 @@
                             "type": "A String", # The type of date-time grouping to apply.
                           },
                         },
-                        "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
-                            #
-                            # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                            # means this group refers to column `C`, whereas the offset `1` would refer
-                            # to column `D`.
                       },
                     ],
                     "source": { # A range on a sheet. # The range the pivot table is reading data from.
@@ -2225,18 +5886,18 @@
                       { # The definition of how a value in a pivot table should be calculated.
                         "formula": "A String", # A custom formula to calculate the value.  The formula must start
                             # with an `=` character.
-                        "name": "A String", # A name to use for the value.
-                        "sourceColumnOffset": 42, # The column offset of the source range that this value reads from.
-                            #
-                            # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                            # means this value refers to column `C`, whereas the offset `1` would
-                            # refer to column `D`.
                         "summarizeFunction": "A String", # A function to summarize the value.
                             # If formula is set, the only supported values are
                             # SUM and
                             # CUSTOM.
                             # If sourceColumnOffset is set, then `CUSTOM`
                             # is not supported.
+                        "name": "A String", # A name to use for the value.
+                        "sourceColumnOffset": 42, # The column offset of the source range that this value reads from.
+                            #
+                            # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                            # means this value refers to column `C`, whereas the offset `1` would
+                            # refer to column `D`.
                         "calculatedDisplayType": "A String", # If specified, indicates that pivot values should be displayed as
                             # the result of a calculation with another pivot value. For example, if
                             # calculated_display_type is specified as PERCENT_OF_GRAND_TOTAL, all the
@@ -2302,15 +5963,15 @@
                             "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                 # (Note that formulaValue is not valid,
                                 #  because the values will be calculated.)
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
+                              "formulaValue": "A String", # Represents a formula.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
@@ -2324,7 +5985,7 @@
                             # If not specified, sorting is alphabetical by this group's values.
                           "buckets": [ # Determines the bucket from which values are chosen to sort.
                               #
-                              # For example, in a pivot table with one row group & two column groups,
+                              # For example, in a pivot table with one row group &amp; two column groups,
                               # the row group can list up to two values. The first value corresponds
                               # to a value within the first column group, and the second value
                               # corresponds to a value in the second column group.  If no values
@@ -2332,15 +5993,15 @@
                               # to the "Grand Total" over the column groups. If a single value is listed,
                               # this would correspond to using the "Total" of that bucket.
                             { # The kinds of value that a cell in a spreadsheet can have.
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
+                              "formulaValue": "A String", # Represents a formula.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
@@ -2353,6 +6014,11 @@
                               # grouping should be sorted by.
                         },
                         "sortOrder": "A String", # The order the values in this group should be sorted.
+                        "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
+                            #
+                            # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                            # means this group refers to column `C`, whereas the offset `1` would
+                            # refer to column `D`.
                         "groupRule": { # An optional setting on a PivotGroup that defines buckets for the values # The group rule to apply to this row/column group.
                             # in the source data column rather than breaking out each individual value.
                             # Only one PivotGroup with a group rule may be added for each column in
@@ -2385,10 +6051,10 @@
                               #     +-------------+-------------------+
                               #     | Grouped Age | AVERAGE of Amount |
                               #     +-------------+-------------------+
-                              #     | < 25        |            $19.34 |
+                              #     | &lt; 25        |            $19.34 |
                               #     | 25-45       |            $31.43 |
                               #     | 45-65       |            $35.87 |
-                              #     | > 65        |            $27.55 |
+                              #     | &gt; 65        |            $27.55 |
                               #     +-------------+-------------------+
                               #     | Grand Total |            $29.12 |
                               #     +-------------+-------------------+
@@ -2435,15 +6101,15 @@
                                     # group within a given ManualRule. Items that do not appear in any
                                     # group will appear on their own.
                                   { # The kinds of value that a cell in a spreadsheet can have.
-                                    "numberValue": 3.14, # Represents a double value.
-                                        # Note: Dates, Times and DateTimes are represented as doubles in
-                                        # "serial number" format.
-                                    "boolValue": True or False, # Represents a boolean value.
-                                    "formulaValue": "A String", # Represents a formula.
                                     "stringValue": "A String", # Represents a string value.
                                         # Leading single quotes are not included. For example, if the user typed
                                         # `'123` into the UI, this would be represented as a `stringValue` of
                                         # `"123"`.
+                                    "boolValue": True or False, # Represents a boolean value.
+                                    "numberValue": 3.14, # Represents a double value.
+                                        # Note: Dates, Times and DateTimes are represented as doubles in
+                                        # "serial number" format.
+                                    "formulaValue": "A String", # Represents a formula.
                                     "errorValue": { # An error in a cell. # Represents an error.
                                         # This field is read-only.
                                       "message": "A String", # A message with more information about the error
@@ -2454,15 +6120,15 @@
                                 ],
                                 "groupName": { # The kinds of value that a cell in a spreadsheet can have. # The group name, which must be a string. Each group in a given
                                     # ManualRule must have a unique group name.
-                                  "numberValue": 3.14, # Represents a double value.
-                                      # Note: Dates, Times and DateTimes are represented as doubles in
-                                      # "serial number" format.
-                                  "boolValue": True or False, # Represents a boolean value.
-                                  "formulaValue": "A String", # Represents a formula.
                                   "stringValue": "A String", # Represents a string value.
                                       # Leading single quotes are not included. For example, if the user typed
                                       # `'123` into the UI, this would be represented as a `stringValue` of
                                       # `"123"`.
+                                  "boolValue": True or False, # Represents a boolean value.
+                                  "numberValue": 3.14, # Represents a double value.
+                                      # Note: Dates, Times and DateTimes are represented as doubles in
+                                      # "serial number" format.
+                                  "formulaValue": "A String", # Represents a formula.
                                   "errorValue": { # An error in a cell. # Represents an error.
                                       # This field is read-only.
                                     "message": "A String", # A message with more information about the error
@@ -2499,11 +6165,6 @@
                             "type": "A String", # The type of date-time grouping to apply.
                           },
                         },
-                        "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
-                            #
-                            # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                            # means this group refers to column `C`, whereas the offset `1` would refer
-                            # to column `D`.
                       },
                     ],
                   },
@@ -2515,15 +6176,15 @@
                       # the calculated value.  For cells with literals, this is
                       # the same as the user_entered_value.
                       # This field is read-only.
-                    "numberValue": 3.14, # Represents a double value.
-                        # Note: Dates, Times and DateTimes are represented as doubles in
-                        # "serial number" format.
-                    "boolValue": True or False, # Represents a boolean value.
-                    "formulaValue": "A String", # Represents a formula.
                     "stringValue": "A String", # Represents a string value.
                         # Leading single quotes are not included. For example, if the user typed
                         # `'123` into the UI, this would be represented as a `stringValue` of
                         # `"123"`.
+                    "boolValue": True or False, # Represents a boolean value.
+                    "numberValue": 3.14, # Represents a double value.
+                        # Note: Dates, Times and DateTimes are represented as doubles in
+                        # "serial number" format.
+                    "formulaValue": "A String", # Represents a formula.
                     "errorValue": { # An error in a cell. # Represents an error.
                         # This field is read-only.
                       "message": "A String", # A message with more information about the error
@@ -2537,15 +6198,15 @@
                   "userEnteredValue": { # The kinds of value that a cell in a spreadsheet can have. # The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()`
                       # Note: Dates, Times and DateTimes are represented as doubles in
                       # serial number format.
-                    "numberValue": 3.14, # Represents a double value.
-                        # Note: Dates, Times and DateTimes are represented as doubles in
-                        # "serial number" format.
-                    "boolValue": True or False, # Represents a boolean value.
-                    "formulaValue": "A String", # Represents a formula.
                     "stringValue": "A String", # Represents a string value.
                         # Leading single quotes are not included. For example, if the user typed
                         # `'123` into the UI, this would be represented as a `stringValue` of
                         # `"123"`.
+                    "boolValue": True or False, # Represents a boolean value.
+                    "numberValue": 3.14, # Represents a double value.
+                        # Note: Dates, Times and DateTimes are represented as doubles in
+                        # "serial number" format.
+                    "formulaValue": "A String", # Represents a formula.
                     "errorValue": { # An error in a cell. # Represents an error.
                         # This field is read-only.
                       "message": "A String", # A message with more information about the error
@@ -2560,6 +6221,13 @@
                       # If the effective format is the default format, effective format will
                       # not be written.
                       # This field is read-only.
+                    "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                        # When updating padding, every field must be specified.
+                      "top": 42, # The top padding of the cell.
+                      "left": 42, # The left padding of the cell.
+                      "right": 42, # The right padding of the cell.
+                      "bottom": 42, # The bottom padding of the cell.
+                    },
                     "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                       "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                           # the user's locale will be used if necessary for the given type.
@@ -2569,12 +6237,143 @@
                           # When writing, this field must be set.
                     },
                     "textDirection": "A String", # The direction of the text in the cell.
-                    "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                        # When updating padding, every field must be specified.
-                      "top": 42, # The top padding of the cell.
-                      "left": 42, # The left padding of the cell.
-                      "right": 42, # The right padding of the cell.
-                      "bottom": 42, # The bottom padding of the cell.
+                    "backgroundColorStyle": { # A color value. # The background color of the cell.
+                        # If background_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
                     },
                     "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                     "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -2647,14 +6446,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -2684,11 +6483,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -2784,14 +6583,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -2821,11 +6620,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -2850,284 +6649,144 @@
                         },
                         "width": 42, # The width of the border, in pixels.
                             # Deprecated; the width is determined by the "style" field.
-                        "style": "A String", # The style of the border.
-                      },
-                      "right": { # A border along a cell. # The right border of the cell.
-                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                            # for simplicity of conversion to/from color representations in various
-                            # languages over compactness; for example, the fields of this representation
-                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                            # method in iOS; and, with just a little work, it can be easily formatted into
-                            # a CSS "rgba()" string in JavaScript, as well.
-                            #
-                            # Note: this proto does not carry information about the absolute color space
-                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                            # space.
-                            #
-                            # Example (Java):
-                            #
-                            #      import com.google.type.Color;
-                            #
-                            #      // ...
-                            #      public static java.awt.Color fromProto(Color protocolor) {
-                            #        float alpha = protocolor.hasAlpha()
-                            #            ? protocolor.getAlpha().getValue()
-                            #            : 1.0;
-                            #
-                            #        return new java.awt.Color(
-                            #            protocolor.getRed(),
-                            #            protocolor.getGreen(),
-                            #            protocolor.getBlue(),
-                            #            alpha);
-                            #      }
-                            #
-                            #      public static Color toProto(java.awt.Color color) {
-                            #        float red = (float) color.getRed();
-                            #        float green = (float) color.getGreen();
-                            #        float blue = (float) color.getBlue();
-                            #        float denominator = 255.0;
-                            #        Color.Builder resultBuilder =
-                            #            Color
-                            #                .newBuilder()
-                            #                .setRed(red / denominator)
-                            #                .setGreen(green / denominator)
-                            #                .setBlue(blue / denominator);
-                            #        int alpha = color.getAlpha();
-                            #        if (alpha != 255) {
-                            #          result.setAlpha(
-                            #              FloatValue
-                            #                  .newBuilder()
-                            #                  .setValue(((float) alpha) / denominator)
-                            #                  .build());
-                            #        }
-                            #        return resultBuilder.build();
-                            #      }
-                            #      // ...
-                            #
-                            # Example (iOS / Obj-C):
-                            #
-                            #      // ...
-                            #      static UIColor* fromProto(Color* protocolor) {
-                            #         float red = [protocolor red];
-                            #         float green = [protocolor green];
-                            #         float blue = [protocolor blue];
-                            #         FloatValue* alpha_wrapper = [protocolor alpha];
-                            #         float alpha = 1.0;
-                            #         if (alpha_wrapper != nil) {
-                            #           alpha = [alpha_wrapper value];
-                            #         }
-                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                            #      }
-                            #
-                            #      static Color* toProto(UIColor* color) {
-                            #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                            #            return nil;
-                            #          }
-                            #          Color* result = [[Color alloc] init];
-                            #          [result setRed:red];
-                            #          [result setGreen:green];
-                            #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
-                            #            [result setAlpha:floatWrapperWithValue(alpha)];
-                            #          }
-                            #          [result autorelease];
-                            #          return result;
-                            #     }
-                            #     // ...
-                            #
-                            #  Example (JavaScript):
-                            #
-                            #     // ...
-                            #
-                            #     var protoToCssColor = function(rgb_color) {
-                            #        var redFrac = rgb_color.red || 0.0;
-                            #        var greenFrac = rgb_color.green || 0.0;
-                            #        var blueFrac = rgb_color.blue || 0.0;
-                            #        var red = Math.floor(redFrac * 255);
-                            #        var green = Math.floor(greenFrac * 255);
-                            #        var blue = Math.floor(blueFrac * 255);
-                            #
-                            #        if (!('alpha' in rgb_color)) {
-                            #           return rgbToCssColor_(red, green, blue);
-                            #        }
-                            #
-                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                            #        var rgbParams = [red, green, blue].join(',');
-                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                            #     };
-                            #
-                            #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                            #       var hexString = rgbNumber.toString(16);
-                            #       var missingZeros = 6 - hexString.length;
-                            #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
-                            #          resultBuilder.push('0');
-                            #       }
-                            #       resultBuilder.push(hexString);
-                            #       return resultBuilder.join('');
-                            #     };
-                            #
-                            #     // ...
-                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                              # the final pixel color is defined by the equation:
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
                               #
-                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
                               #
-                              # This means that a value of 1.0 corresponds to a solid color, whereas
-                              # a value of 0.0 corresponds to a completely transparent color. This
-                              # uses a wrapper message rather than a simple float scalar so that it is
-                              # possible to distinguish between a default value and the value being unset.
-                              # If omitted, this color object is to be rendered as a solid color
-                              # (as if the alpha value had been explicitly given with a value of 1.0).
-                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
                         },
-                        "width": 42, # The width of the border, in pixels.
-                            # Deprecated; the width is determined by the "style" field.
-                        "style": "A String", # The style of the border.
-                      },
-                      "bottom": { # A border along a cell. # The bottom border of the cell.
-                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                            # for simplicity of conversion to/from color representations in various
-                            # languages over compactness; for example, the fields of this representation
-                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                            # method in iOS; and, with just a little work, it can be easily formatted into
-                            # a CSS "rgba()" string in JavaScript, as well.
-                            #
-                            # Note: this proto does not carry information about the absolute color space
-                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                            # space.
-                            #
-                            # Example (Java):
-                            #
-                            #      import com.google.type.Color;
-                            #
-                            #      // ...
-                            #      public static java.awt.Color fromProto(Color protocolor) {
-                            #        float alpha = protocolor.hasAlpha()
-                            #            ? protocolor.getAlpha().getValue()
-                            #            : 1.0;
-                            #
-                            #        return new java.awt.Color(
-                            #            protocolor.getRed(),
-                            #            protocolor.getGreen(),
-                            #            protocolor.getBlue(),
-                            #            alpha);
-                            #      }
-                            #
-                            #      public static Color toProto(java.awt.Color color) {
-                            #        float red = (float) color.getRed();
-                            #        float green = (float) color.getGreen();
-                            #        float blue = (float) color.getBlue();
-                            #        float denominator = 255.0;
-                            #        Color.Builder resultBuilder =
-                            #            Color
-                            #                .newBuilder()
-                            #                .setRed(red / denominator)
-                            #                .setGreen(green / denominator)
-                            #                .setBlue(blue / denominator);
-                            #        int alpha = color.getAlpha();
-                            #        if (alpha != 255) {
-                            #          result.setAlpha(
-                            #              FloatValue
-                            #                  .newBuilder()
-                            #                  .setValue(((float) alpha) / denominator)
-                            #                  .build());
-                            #        }
-                            #        return resultBuilder.build();
-                            #      }
-                            #      // ...
-                            #
-                            # Example (iOS / Obj-C):
-                            #
-                            #      // ...
-                            #      static UIColor* fromProto(Color* protocolor) {
-                            #         float red = [protocolor red];
-                            #         float green = [protocolor green];
-                            #         float blue = [protocolor blue];
-                            #         FloatValue* alpha_wrapper = [protocolor alpha];
-                            #         float alpha = 1.0;
-                            #         if (alpha_wrapper != nil) {
-                            #           alpha = [alpha_wrapper value];
-                            #         }
-                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                            #      }
-                            #
-                            #      static Color* toProto(UIColor* color) {
-                            #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                            #            return nil;
-                            #          }
-                            #          Color* result = [[Color alloc] init];
-                            #          [result setRed:red];
-                            #          [result setGreen:green];
-                            #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
-                            #            [result setAlpha:floatWrapperWithValue(alpha)];
-                            #          }
-                            #          [result autorelease];
-                            #          return result;
-                            #     }
-                            #     // ...
-                            #
-                            #  Example (JavaScript):
-                            #
-                            #     // ...
-                            #
-                            #     var protoToCssColor = function(rgb_color) {
-                            #        var redFrac = rgb_color.red || 0.0;
-                            #        var greenFrac = rgb_color.green || 0.0;
-                            #        var blueFrac = rgb_color.blue || 0.0;
-                            #        var red = Math.floor(redFrac * 255);
-                            #        var green = Math.floor(greenFrac * 255);
-                            #        var blue = Math.floor(blueFrac * 255);
-                            #
-                            #        if (!('alpha' in rgb_color)) {
-                            #           return rgbToCssColor_(red, green, blue);
-                            #        }
-                            #
-                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                            #        var rgbParams = [red, green, blue].join(',');
-                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                            #     };
-                            #
-                            #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                            #       var hexString = rgbNumber.toString(16);
-                            #       var missingZeros = 6 - hexString.length;
-                            #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
-                            #          resultBuilder.push('0');
-                            #       }
-                            #       resultBuilder.push(hexString);
-                            #       return resultBuilder.join('');
-                            #     };
-                            #
-                            #     // ...
-                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                              # the final pixel color is defined by the equation:
-                              #
-                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                              #
-                              # This means that a value of 1.0 corresponds to a solid color, whereas
-                              # a value of 0.0 corresponds to a completely transparent color. This
-                              # uses a wrapper message rather than a simple float scalar so that it is
-                              # possible to distinguish between a default value and the value being unset.
-                              # If omitted, this color object is to be rendered as a solid color
-                              # (as if the alpha value had been explicitly given with a value of 1.0).
-                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                        },
-                        "width": 42, # The width of the border, in pixels.
-                            # Deprecated; the width is determined by the "style" field.
                         "style": "A String", # The style of the border.
                       },
                       "left": { # A border along a cell. # The left border of the cell.
@@ -3201,14 +6860,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -3238,11 +6897,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -3267,6 +6926,698 @@
                         },
                         "width": 42, # The width of the border, in pixels.
                             # Deprecated; the width is determined by the "style" field.
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
+                        "style": "A String", # The style of the border.
+                      },
+                      "right": { # A border along a cell. # The right border of the cell.
+                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                        "width": 42, # The width of the border, in pixels.
+                            # Deprecated; the width is determined by the "style" field.
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
+                        "style": "A String", # The style of the border.
+                      },
+                      "bottom": { # A border along a cell. # The bottom border of the cell.
+                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                        "width": 42, # The width of the border, in pixels.
+                            # Deprecated; the width is determined by the "style" field.
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
                         "style": "A String", # The style of the border.
                       },
                     },
@@ -3364,14 +7715,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -3401,11 +7752,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -3429,6 +7780,144 @@
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
                       "bold": True or False, # True if the text is bold.
+                      "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                          # If foreground_color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "strikethrough": True or False, # True if the text has a strikethrough.
                       "fontFamily": "A String", # The font family.
                       "fontSize": 42, # The size of the font.
@@ -3440,6 +7929,13 @@
                   "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell.
                       #
                       # When writing, the new format will be merged with the existing format.
+                    "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                        # When updating padding, every field must be specified.
+                      "top": 42, # The top padding of the cell.
+                      "left": 42, # The left padding of the cell.
+                      "right": 42, # The right padding of the cell.
+                      "bottom": 42, # The bottom padding of the cell.
+                    },
                     "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                       "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                           # the user's locale will be used if necessary for the given type.
@@ -3449,12 +7945,143 @@
                           # When writing, this field must be set.
                     },
                     "textDirection": "A String", # The direction of the text in the cell.
-                    "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                        # When updating padding, every field must be specified.
-                      "top": 42, # The top padding of the cell.
-                      "left": 42, # The left padding of the cell.
-                      "right": 42, # The right padding of the cell.
-                      "bottom": 42, # The bottom padding of the cell.
+                    "backgroundColorStyle": { # A color value. # The background color of the cell.
+                        # If background_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
                     },
                     "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                     "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -3527,14 +8154,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -3564,11 +8191,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -3664,14 +8291,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -3701,11 +8328,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -3730,284 +8357,144 @@
                         },
                         "width": 42, # The width of the border, in pixels.
                             # Deprecated; the width is determined by the "style" field.
-                        "style": "A String", # The style of the border.
-                      },
-                      "right": { # A border along a cell. # The right border of the cell.
-                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                            # for simplicity of conversion to/from color representations in various
-                            # languages over compactness; for example, the fields of this representation
-                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                            # method in iOS; and, with just a little work, it can be easily formatted into
-                            # a CSS "rgba()" string in JavaScript, as well.
-                            #
-                            # Note: this proto does not carry information about the absolute color space
-                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                            # space.
-                            #
-                            # Example (Java):
-                            #
-                            #      import com.google.type.Color;
-                            #
-                            #      // ...
-                            #      public static java.awt.Color fromProto(Color protocolor) {
-                            #        float alpha = protocolor.hasAlpha()
-                            #            ? protocolor.getAlpha().getValue()
-                            #            : 1.0;
-                            #
-                            #        return new java.awt.Color(
-                            #            protocolor.getRed(),
-                            #            protocolor.getGreen(),
-                            #            protocolor.getBlue(),
-                            #            alpha);
-                            #      }
-                            #
-                            #      public static Color toProto(java.awt.Color color) {
-                            #        float red = (float) color.getRed();
-                            #        float green = (float) color.getGreen();
-                            #        float blue = (float) color.getBlue();
-                            #        float denominator = 255.0;
-                            #        Color.Builder resultBuilder =
-                            #            Color
-                            #                .newBuilder()
-                            #                .setRed(red / denominator)
-                            #                .setGreen(green / denominator)
-                            #                .setBlue(blue / denominator);
-                            #        int alpha = color.getAlpha();
-                            #        if (alpha != 255) {
-                            #          result.setAlpha(
-                            #              FloatValue
-                            #                  .newBuilder()
-                            #                  .setValue(((float) alpha) / denominator)
-                            #                  .build());
-                            #        }
-                            #        return resultBuilder.build();
-                            #      }
-                            #      // ...
-                            #
-                            # Example (iOS / Obj-C):
-                            #
-                            #      // ...
-                            #      static UIColor* fromProto(Color* protocolor) {
-                            #         float red = [protocolor red];
-                            #         float green = [protocolor green];
-                            #         float blue = [protocolor blue];
-                            #         FloatValue* alpha_wrapper = [protocolor alpha];
-                            #         float alpha = 1.0;
-                            #         if (alpha_wrapper != nil) {
-                            #           alpha = [alpha_wrapper value];
-                            #         }
-                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                            #      }
-                            #
-                            #      static Color* toProto(UIColor* color) {
-                            #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                            #            return nil;
-                            #          }
-                            #          Color* result = [[Color alloc] init];
-                            #          [result setRed:red];
-                            #          [result setGreen:green];
-                            #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
-                            #            [result setAlpha:floatWrapperWithValue(alpha)];
-                            #          }
-                            #          [result autorelease];
-                            #          return result;
-                            #     }
-                            #     // ...
-                            #
-                            #  Example (JavaScript):
-                            #
-                            #     // ...
-                            #
-                            #     var protoToCssColor = function(rgb_color) {
-                            #        var redFrac = rgb_color.red || 0.0;
-                            #        var greenFrac = rgb_color.green || 0.0;
-                            #        var blueFrac = rgb_color.blue || 0.0;
-                            #        var red = Math.floor(redFrac * 255);
-                            #        var green = Math.floor(greenFrac * 255);
-                            #        var blue = Math.floor(blueFrac * 255);
-                            #
-                            #        if (!('alpha' in rgb_color)) {
-                            #           return rgbToCssColor_(red, green, blue);
-                            #        }
-                            #
-                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                            #        var rgbParams = [red, green, blue].join(',');
-                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                            #     };
-                            #
-                            #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                            #       var hexString = rgbNumber.toString(16);
-                            #       var missingZeros = 6 - hexString.length;
-                            #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
-                            #          resultBuilder.push('0');
-                            #       }
-                            #       resultBuilder.push(hexString);
-                            #       return resultBuilder.join('');
-                            #     };
-                            #
-                            #     // ...
-                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                              # the final pixel color is defined by the equation:
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
                               #
-                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
                               #
-                              # This means that a value of 1.0 corresponds to a solid color, whereas
-                              # a value of 0.0 corresponds to a completely transparent color. This
-                              # uses a wrapper message rather than a simple float scalar so that it is
-                              # possible to distinguish between a default value and the value being unset.
-                              # If omitted, this color object is to be rendered as a solid color
-                              # (as if the alpha value had been explicitly given with a value of 1.0).
-                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
                         },
-                        "width": 42, # The width of the border, in pixels.
-                            # Deprecated; the width is determined by the "style" field.
-                        "style": "A String", # The style of the border.
-                      },
-                      "bottom": { # A border along a cell. # The bottom border of the cell.
-                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                            # for simplicity of conversion to/from color representations in various
-                            # languages over compactness; for example, the fields of this representation
-                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                            # method in iOS; and, with just a little work, it can be easily formatted into
-                            # a CSS "rgba()" string in JavaScript, as well.
-                            #
-                            # Note: this proto does not carry information about the absolute color space
-                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                            # space.
-                            #
-                            # Example (Java):
-                            #
-                            #      import com.google.type.Color;
-                            #
-                            #      // ...
-                            #      public static java.awt.Color fromProto(Color protocolor) {
-                            #        float alpha = protocolor.hasAlpha()
-                            #            ? protocolor.getAlpha().getValue()
-                            #            : 1.0;
-                            #
-                            #        return new java.awt.Color(
-                            #            protocolor.getRed(),
-                            #            protocolor.getGreen(),
-                            #            protocolor.getBlue(),
-                            #            alpha);
-                            #      }
-                            #
-                            #      public static Color toProto(java.awt.Color color) {
-                            #        float red = (float) color.getRed();
-                            #        float green = (float) color.getGreen();
-                            #        float blue = (float) color.getBlue();
-                            #        float denominator = 255.0;
-                            #        Color.Builder resultBuilder =
-                            #            Color
-                            #                .newBuilder()
-                            #                .setRed(red / denominator)
-                            #                .setGreen(green / denominator)
-                            #                .setBlue(blue / denominator);
-                            #        int alpha = color.getAlpha();
-                            #        if (alpha != 255) {
-                            #          result.setAlpha(
-                            #              FloatValue
-                            #                  .newBuilder()
-                            #                  .setValue(((float) alpha) / denominator)
-                            #                  .build());
-                            #        }
-                            #        return resultBuilder.build();
-                            #      }
-                            #      // ...
-                            #
-                            # Example (iOS / Obj-C):
-                            #
-                            #      // ...
-                            #      static UIColor* fromProto(Color* protocolor) {
-                            #         float red = [protocolor red];
-                            #         float green = [protocolor green];
-                            #         float blue = [protocolor blue];
-                            #         FloatValue* alpha_wrapper = [protocolor alpha];
-                            #         float alpha = 1.0;
-                            #         if (alpha_wrapper != nil) {
-                            #           alpha = [alpha_wrapper value];
-                            #         }
-                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                            #      }
-                            #
-                            #      static Color* toProto(UIColor* color) {
-                            #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                            #            return nil;
-                            #          }
-                            #          Color* result = [[Color alloc] init];
-                            #          [result setRed:red];
-                            #          [result setGreen:green];
-                            #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
-                            #            [result setAlpha:floatWrapperWithValue(alpha)];
-                            #          }
-                            #          [result autorelease];
-                            #          return result;
-                            #     }
-                            #     // ...
-                            #
-                            #  Example (JavaScript):
-                            #
-                            #     // ...
-                            #
-                            #     var protoToCssColor = function(rgb_color) {
-                            #        var redFrac = rgb_color.red || 0.0;
-                            #        var greenFrac = rgb_color.green || 0.0;
-                            #        var blueFrac = rgb_color.blue || 0.0;
-                            #        var red = Math.floor(redFrac * 255);
-                            #        var green = Math.floor(greenFrac * 255);
-                            #        var blue = Math.floor(blueFrac * 255);
-                            #
-                            #        if (!('alpha' in rgb_color)) {
-                            #           return rgbToCssColor_(red, green, blue);
-                            #        }
-                            #
-                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                            #        var rgbParams = [red, green, blue].join(',');
-                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                            #     };
-                            #
-                            #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                            #       var hexString = rgbNumber.toString(16);
-                            #       var missingZeros = 6 - hexString.length;
-                            #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
-                            #          resultBuilder.push('0');
-                            #       }
-                            #       resultBuilder.push(hexString);
-                            #       return resultBuilder.join('');
-                            #     };
-                            #
-                            #     // ...
-                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                              # the final pixel color is defined by the equation:
-                              #
-                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                              #
-                              # This means that a value of 1.0 corresponds to a solid color, whereas
-                              # a value of 0.0 corresponds to a completely transparent color. This
-                              # uses a wrapper message rather than a simple float scalar so that it is
-                              # possible to distinguish between a default value and the value being unset.
-                              # If omitted, this color object is to be rendered as a solid color
-                              # (as if the alpha value had been explicitly given with a value of 1.0).
-                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                        },
-                        "width": 42, # The width of the border, in pixels.
-                            # Deprecated; the width is determined by the "style" field.
                         "style": "A String", # The style of the border.
                       },
                       "left": { # A border along a cell. # The left border of the cell.
@@ -4081,14 +8568,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -4118,11 +8605,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -4147,6 +8634,698 @@
                         },
                         "width": 42, # The width of the border, in pixels.
                             # Deprecated; the width is determined by the "style" field.
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
+                        "style": "A String", # The style of the border.
+                      },
+                      "right": { # A border along a cell. # The right border of the cell.
+                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                        "width": 42, # The width of the border, in pixels.
+                            # Deprecated; the width is determined by the "style" field.
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
+                        "style": "A String", # The style of the border.
+                      },
+                      "bottom": { # A border along a cell. # The bottom border of the cell.
+                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                        "width": 42, # The width of the border, in pixels.
+                            # Deprecated; the width is determined by the "style" field.
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
                         "style": "A String", # The style of the border.
                       },
                     },
@@ -4244,14 +9423,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -4281,11 +9460,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -4309,6 +9488,144 @@
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
                       "bold": True or False, # True if the text is bold.
+                      "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                          # If foreground_color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "strikethrough": True or False, # True if the text has a strikethrough.
                       "fontFamily": "A String", # The font family.
                       "fontSize": 42, # The size of the font.
@@ -4435,14 +9752,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -4472,11 +9789,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -4500,6 +9817,144 @@
                           "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                         },
                         "bold": True or False, # True if the text is bold.
+                        "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                            # If foreground_color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
                         "strikethrough": True or False, # True if the text has a strikethrough.
                         "fontFamily": "A String", # The font family.
                         "fontSize": 42, # The size of the font.
@@ -4514,11 +9969,54 @@
           ],
           "sheetId": 42, # The sheet ID to append the data to.
         },
+        "addNamedRange": { # Adds a named range to the spreadsheet. # Adds a named range.
+          "namedRange": { # A named range. # The named range to add. The namedRangeId
+              # field is optional; if one is not set, an id will be randomly generated. (It
+              # is an error to specify the ID of a range that already exists.)
+            "namedRangeId": "A String", # The ID of the named range.
+            "range": { # A range on a sheet. # The range this represents.
+                # All indexes are zero-based.
+                # Indexes are half open, e.g the start index is inclusive
+                # and the end index is exclusive -- [start_index, end_index).
+                # Missing indexes indicate the range is unbounded on that side.
+                #
+                # For example, if `"Sheet1"` is sheet ID 0, then:
+                #
+                #   `Sheet1!A1:A1 == sheet_id: 0,
+                #                   start_row_index: 0, end_row_index: 1,
+                #                   start_column_index: 0, end_column_index: 1`
+                #
+                #   `Sheet1!A3:B4 == sheet_id: 0,
+                #                   start_row_index: 2, end_row_index: 4,
+                #                   start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A:B == sheet_id: 0,
+                #                 start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A5:B == sheet_id: 0,
+                #                  start_row_index: 4,
+                #                  start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1 == sheet_id:0`
+                #
+                # The start index must always be less than or equal to the end index.
+                # If the start index equals the end index, then the range is empty.
+                # Empty ranges are typically not meaningful and are usually rendered in the
+                # UI as `#REF!`.
+              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "sheetId": 42, # The sheet this range is on.
+              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            },
+            "name": "A String", # The name of the named range.
+          },
+        },
         "duplicateSheet": { # Duplicates the contents of a sheet. # Duplicates a sheet.
-          "newSheetName": "A String", # The name of the new sheet.  If empty, a new name is chosen for you.
+          "sourceSheetId": 42, # The sheet to duplicate.
           "insertSheetIndex": 42, # The zero-based index where the new sheet should be inserted.
               # The index of all sheets after this are incremented.
-          "sourceSheetId": 42, # The sheet to duplicate.
+          "newSheetName": "A String", # The name of the new sheet.  If empty, a new name is chosen for you.
           "newSheetId": 42, # If set, the ID of the new sheet. If not set, an ID is chosen.
               # If set, the ID must not conflict with any existing sheet ID.
               # If set, it must be non-negative.
@@ -4625,14 +10123,14 @@
                 #
                 #      static Color* toProto(UIColor* color) {
                 #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                 #            return nil;
                 #          }
                 #          Color* result = [[Color alloc] init];
                 #          [result setRed:red];
                 #          [result setGreen:green];
                 #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
+                #          if (alpha &lt;= 0.9999) {
                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                 #          }
                 #          [result autorelease];
@@ -4662,11 +10160,11 @@
                 #     };
                 #
                 #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                 #       var hexString = rgbNumber.toString(16);
                 #       var missingZeros = 6 - hexString.length;
                 #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
+                #       for (var i = 0; i &lt; missingZeros; i++) {
                 #          resultBuilder.push('0');
                 #       }
                 #       resultBuilder.push(hexString);
@@ -4690,6 +10188,144 @@
               "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
             },
             "hidden": True or False, # True if the sheet is hidden in the UI, false if it's visible.
+            "tabColorStyle": { # A color value. # The color of the tab in the UI.
+                # If tab_color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
             "sheetId": 42, # The ID of the sheet. Must be non-negative.
                 # This field cannot be changed once set.
           },
@@ -4712,9 +10348,9 @@
                   "columnIndex": 42, # The column index of the coordinate.
                   "sheetId": 42, # The sheet this coordinate is on.
                 },
-                "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
                 "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
                     # from the anchor cell.
+                "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
                 "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
                     # from the anchor cell.
                 "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
@@ -4727,149 +10363,140 @@
               "altText": "A String", # The alternative text that describes the chart.  This is often used
                   # for accessibility.
               "subtitle": "A String", # The subtitle of the chart.
-              "subtitleTextFormat": { # The format of a run of text in a cell. # The subtitle text format.
-                  # Strikethrough and underline are not supported.
-                  # Absent values indicate that the field isn't specified.
-                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
+              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the entire chart.
+                  # Not applicable to Org charts.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
                     #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
                     #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                },
-                "bold": True or False, # True if the text is bold.
-                "strikethrough": True or False, # True if the text has a strikethrough.
-                "fontFamily": "A String", # The font family.
-                "fontSize": 42, # The size of the font.
-                "italic": True or False, # True if the text is italicized.
-                "underline": True or False, # True if the text is underlined.
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
               "title": "A String", # The title of the chart.
               "titleTextFormat": { # The format of a run of text in a cell. # The title text format.
@@ -4945,14 +10572,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -4982,11 +10609,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -5010,20 +10637,158 @@
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
                 "bold": True or False, # True if the text is bold.
+                "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                    # If foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "strikethrough": True or False, # True if the text has a strikethrough.
                 "fontFamily": "A String", # The font family.
                 "fontSize": 42, # The size of the font.
                 "italic": True or False, # True if the text is italicized.
                 "underline": True or False, # True if the text is underlined.
               },
-              "treemapChart": { # A <a href="/chart/interactive/docs/gallery/treemap">Treemap chart</a>. # A treemap chart specification.
+              "treemapChart": { # A &lt;a href="/chart/interactive/docs/gallery/treemap"&gt;Treemap chart&lt;/a&gt;. # A treemap chart specification.
                 "parentLabels": { # The data included in a domain or series. # The data the contains the treemap cells' parent labels.
                   "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                     "sources": [ # The ranges of data for a series or domain.
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -5075,66 +10840,139 @@
                     ],
                   },
                 },
-                "sizeData": { # The data included in a domain or series. # The data that determines the size of each treemap data cell. This data is
-                    # expected to be numeric. The cells corresponding to non-numeric or missing
-                    # data will not be rendered. If color_data is not specified, this data
-                    # is used to determine data cell background colors as well.
-                  "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
-                    "sources": [ # The ranges of data for a series or domain.
-                        # Exactly one dimension must have a length of 1,
-                        # and all sources in the list must have the same dimension
-                        # with length 1.
-                        # The domain (if it exists) & all series must have the same number
-                        # of source ranges. If using more than one source range, then the source
-                        # range at a given offset must be in order and contiguous across the domain
-                        # and series.
-                        #
-                        # For example, these are valid configurations:
-                        #
-                        #     domain sources: A1:A5
-                        #     series1 sources: B1:B5
-                        #     series2 sources: D6:D10
-                        #
-                        #     domain sources: A1:A5, C10:C12
-                        #     series1 sources: B1:B5, D10:D12
-                        #     series2 sources: C1:C5, E10:E12
-                      { # A range on a sheet.
-                          # All indexes are zero-based.
-                          # Indexes are half open, e.g the start index is inclusive
-                          # and the end index is exclusive -- [start_index, end_index).
-                          # Missing indexes indicate the range is unbounded on that side.
-                          #
-                          # For example, if `"Sheet1"` is sheet ID 0, then:
-                          #
-                          #   `Sheet1!A1:A1 == sheet_id: 0,
-                          #                   start_row_index: 0, end_row_index: 1,
-                          #                   start_column_index: 0, end_column_index: 1`
-                          #
-                          #   `Sheet1!A3:B4 == sheet_id: 0,
-                          #                   start_row_index: 2, end_row_index: 4,
-                          #                   start_column_index: 0, end_column_index: 2`
-                          #
-                          #   `Sheet1!A:B == sheet_id: 0,
-                          #                 start_column_index: 0, end_column_index: 2`
-                          #
-                          #   `Sheet1!A5:B == sheet_id: 0,
-                          #                  start_row_index: 4,
-                          #                  start_column_index: 0, end_column_index: 2`
-                          #
-                          #   `Sheet1 == sheet_id:0`
-                          #
-                          # The start index must always be less than or equal to the end index.
-                          # If the start index equals the end index, then the range is empty.
-                          # Empty ranges are typically not meaningful and are usually rendered in the
-                          # UI as `#REF!`.
-                        "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-                        "sheetId": 42, # The sheet this range is on.
-                        "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-                      },
-                    ],
-                  },
+                "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for header cells.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
                 "hideTooltips": True or False, # True to hide tooltips.
                 "colorScale": { # A color scale for a treemap chart. # The color scale for data cells in the treemap chart. Data cells are
@@ -5153,6 +10991,142 @@
                     # Cells with missing or non-numeric color values will have
                     # noDataColor as their background
                     # color.
+                  "maxValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value greater than or equal
+                      # to maxValue. Defaults to #109618 if not
+                      # specified.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
                   "noDataColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells that have no color data associated with
                       # them. Defaults to #000000 if not specified.
                       # for simplicity of conversion to/from color representations in various
@@ -5224,14 +11198,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -5261,11 +11235,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -5288,6 +11262,562 @@
                     "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
+                  "midValueColorStyle": { # A color value. # The background color for cells with a color value at the midpoint between
+                      # minValue and
+                      # maxValue. Defaults to #efe6dc if not
+                      # specified.
+                      # If mid_value_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "maxValueColorStyle": { # A color value. # The background color for cells with a color value greater than or equal
+                      # to maxValue. Defaults to #109618 if not
+                      # specified.
+                      # If max_value_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "minValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value less than or equal to
+                      # minValue. Defaults to #dc3912 if not
+                      # specified.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "noDataColorStyle": { # A color value. # The background color for cells that have no color data associated with
+                      # them. Defaults to #000000 if not specified.
+                      # If no_data_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "midValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value at the midpoint between
                       # minValue and
                       # maxValue. Defaults to #efe6dc if not
@@ -5361,14 +11891,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -5398,11 +11928,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -5425,277 +11955,145 @@
                     "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
-                  "minValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value less than or equal to
+                  "minValueColorStyle": { # A color value. # The background color for cells with a color value less than or equal to
                       # minValue. Defaults to #dc3912 if not
                       # specified.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
+                      # If min_value_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
                         #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
                         #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                  },
-                  "maxValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value greater than or equal
-                      # to maxValue. Defaults to #109618 if not
-                      # specified.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
+                        # Example (Java):
                         #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #      import com.google.type.Color;
                         #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
                   },
                 },
                 "labels": { # The data included in a domain or series. # The data that contains the treemap cell labels.
@@ -5704,7 +12102,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -5766,7 +12164,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -5822,147 +12220,74 @@
                     # have the same color as cells with this value. If not specified, defaults
                     # to the actual maximum value from color_data, or the maximum value from
                     # size_data if color_data is not specified.
+                "levels": 42, # The number of data levels to show on the treemap chart. These levels are
+                    # interactive and are shown with their labels. Defaults to 2 if not
+                    # specified.
                 "minValue": 3.14, # The minimum possible data value. Cells with values less than this will
                     # have the same color as cells with this value. If not specified, defaults
                     # to the actual minimum value from color_data, or the minimum value from
                     # size_data if color_data is not specified.
-                "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for header cells.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                "sizeData": { # The data included in a domain or series. # The data that determines the size of each treemap data cell. This data is
+                    # expected to be numeric. The cells corresponding to non-numeric or missing
+                    # data will not be rendered. If color_data is not specified, this data
+                    # is used to determine data cell background colors as well.
+                  "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                    "sources": [ # The ranges of data for a series or domain.
+                        # Exactly one dimension must have a length of 1,
+                        # and all sources in the list must have the same dimension
+                        # with length 1.
+                        # The domain (if it exists) &amp; all series must have the same number
+                        # of source ranges. If using more than one source range, then the source
+                        # range at a given offset must be in order and contiguous across the domain
+                        # and series.
+                        #
+                        # For example, these are valid configurations:
+                        #
+                        #     domain sources: A1:A5
+                        #     series1 sources: B1:B5
+                        #     series2 sources: D6:D10
+                        #
+                        #     domain sources: A1:A5, C10:C12
+                        #     series1 sources: B1:B5, D10:D12
+                        #     series2 sources: C1:C5, E10:E12
+                      { # A range on a sheet.
+                          # All indexes are zero-based.
+                          # Indexes are half open, e.g the start index is inclusive
+                          # and the end index is exclusive -- [start_index, end_index).
+                          # Missing indexes indicate the range is unbounded on that side.
+                          #
+                          # For example, if `"Sheet1"` is sheet ID 0, then:
+                          #
+                          #   `Sheet1!A1:A1 == sheet_id: 0,
+                          #                   start_row_index: 0, end_row_index: 1,
+                          #                   start_column_index: 0, end_column_index: 1`
+                          #
+                          #   `Sheet1!A3:B4 == sheet_id: 0,
+                          #                   start_row_index: 2, end_row_index: 4,
+                          #                   start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A:B == sheet_id: 0,
+                          #                 start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A5:B == sheet_id: 0,
+                          #                  start_row_index: 4,
+                          #                  start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1 == sheet_id:0`
+                          #
+                          # The start index must always be less than or equal to the end index.
+                          # If the start index equals the end index, then the range is empty.
+                          # Empty ranges are typically not meaningful and are usually rendered in the
+                          # UI as `#REF!`.
+                        "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "sheetId": 42, # The sheet this range is on.
+                        "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      },
+                    ],
+                  },
                 },
-                "levels": 42, # The number of data levels to show on the treemap chart. These levels are
-                    # interactive and are shown with their labels. Defaults to 2 if not
-                    # specified.
                 "hintedLevels": 42, # The number of additional data levels beyond the labeled levels to be shown
                     # on the treemap chart. These levels are not interactive and are shown
                     # without their labels. Defaults to 0 if not specified.
@@ -6038,14 +12363,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -6075,11 +12400,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -6103,26 +12428,1706 @@
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
                   "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "strikethrough": True or False, # True if the text has a strikethrough.
                   "fontFamily": "A String", # The font family.
                   "fontSize": 42, # The size of the font.
                   "italic": True or False, # True if the text is italicized.
                   "underline": True or False, # True if the text is underlined.
                 },
+                "headerColorStyle": { # A color value. # The background color for header cells.
+                    # If header_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+              },
+              "scorecardChart": { # A scorecard chart. Scorecard charts are used to highlight key performance # A scorecard chart specification.
+                  # indicators, known as KPIs, on the spreadsheet. A scorecard chart can
+                  # represent things like total sales, average cost, or a top selling item. You
+                  # can specify a single data value, or aggregate over a range of data.
+                  # Percentage or absolute difference from a baseline value can be highlighted,
+                  # like changes over time.
+                "numberFormatSource": "A String", # The number format source used in the scorecard chart.
+                    # This field is optional.
+                "customFormatOptions": { # Custom number formatting options for chart attributes. # Custom formatting options for numeric key/baseline values in scorecard
+                    # chart. This field is used only when number_format_source is set to
+                    # CUSTOM. This field is optional.
+                  "prefix": "A String", # Custom prefix to be prepended to the chart attribute.
+                      # This field is optional.
+                  "suffix": "A String", # Custom suffix to be appended to the chart attribute.
+                      # This field is optional.
+                },
+                "keyValueFormat": { # Formatting options for key value. # Formatting options for key value.
+                  "position": { # Position settings for text. # Specifies the horizontal text positioning of key value.
+                      # This field is optional. If not specified, default positioning is used.
+                    "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
+                  },
+                  "textFormat": { # The format of a run of text in a cell. # Text formatting options for key value.
+                      # Absent values indicate that the field isn't specified.
+                    "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "bold": True or False, # True if the text is bold.
+                    "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                        # If foreground_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "strikethrough": True or False, # True if the text has a strikethrough.
+                    "fontFamily": "A String", # The font family.
+                    "fontSize": 42, # The size of the font.
+                    "italic": True or False, # True if the text is italicized.
+                    "underline": True or False, # True if the text is underlined.
+                  },
+                },
+                "aggregateType": "A String", # The aggregation type for key and baseline chart data in scorecard chart.
+                    # This field is optional.
+                "baselineValueFormat": { # Formatting options for baseline value. # Formatting options for baseline value.
+                    # This field is needed only if baseline_value_data is specified.
+                  "description": "A String", # Description which is appended after the baseline value.
+                      # This field is optional.
+                  "negativeColor": { # Represents a color in the RGBA color space. This representation is designed # Color to be used, in case baseline value represents a negative change for
+                      # key value. This field is optional.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "comparisonType": "A String", # The comparison type of key value with baseline value.
+                  "positiveColorStyle": { # A color value. # Color to be used, in case baseline value represents a positive change for
+                      # key value. This field is optional.
+                      # If positive_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "negativeColorStyle": { # A color value. # Color to be used, in case baseline value represents a negative change for
+                      # key value. This field is optional.
+                      # If negative_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "position": { # Position settings for text. # Specifies the horizontal text positioning of baseline value.
+                      # This field is optional. If not specified, default positioning is used.
+                    "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
+                  },
+                  "textFormat": { # The format of a run of text in a cell. # Text formatting options for baseline value.
+                      # Absent values indicate that the field isn't specified.
+                    "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "bold": True or False, # True if the text is bold.
+                    "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                        # If foreground_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "strikethrough": True or False, # True if the text has a strikethrough.
+                    "fontFamily": "A String", # The font family.
+                    "fontSize": 42, # The size of the font.
+                    "italic": True or False, # True if the text is italicized.
+                    "underline": True or False, # True if the text is underlined.
+                  },
+                  "positiveColor": { # Represents a color in the RGBA color space. This representation is designed # Color to be used, in case baseline value represents a positive change for
+                      # key value. This field is optional.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "keyValueData": { # The data included in a domain or series. # The data for scorecard key value.
+                  "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                    "sources": [ # The ranges of data for a series or domain.
+                        # Exactly one dimension must have a length of 1,
+                        # and all sources in the list must have the same dimension
+                        # with length 1.
+                        # The domain (if it exists) &amp; all series must have the same number
+                        # of source ranges. If using more than one source range, then the source
+                        # range at a given offset must be in order and contiguous across the domain
+                        # and series.
+                        #
+                        # For example, these are valid configurations:
+                        #
+                        #     domain sources: A1:A5
+                        #     series1 sources: B1:B5
+                        #     series2 sources: D6:D10
+                        #
+                        #     domain sources: A1:A5, C10:C12
+                        #     series1 sources: B1:B5, D10:D12
+                        #     series2 sources: C1:C5, E10:E12
+                      { # A range on a sheet.
+                          # All indexes are zero-based.
+                          # Indexes are half open, e.g the start index is inclusive
+                          # and the end index is exclusive -- [start_index, end_index).
+                          # Missing indexes indicate the range is unbounded on that side.
+                          #
+                          # For example, if `"Sheet1"` is sheet ID 0, then:
+                          #
+                          #   `Sheet1!A1:A1 == sheet_id: 0,
+                          #                   start_row_index: 0, end_row_index: 1,
+                          #                   start_column_index: 0, end_column_index: 1`
+                          #
+                          #   `Sheet1!A3:B4 == sheet_id: 0,
+                          #                   start_row_index: 2, end_row_index: 4,
+                          #                   start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A:B == sheet_id: 0,
+                          #                 start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A5:B == sheet_id: 0,
+                          #                  start_row_index: 4,
+                          #                  start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1 == sheet_id:0`
+                          #
+                          # The start index must always be less than or equal to the end index.
+                          # If the start index equals the end index, then the range is empty.
+                          # Empty ranges are typically not meaningful and are usually rendered in the
+                          # UI as `#REF!`.
+                        "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "sheetId": 42, # The sheet this range is on.
+                        "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      },
+                    ],
+                  },
+                },
+                "scaleFactor": 3.14, # Value to scale scorecard key and baseline value. For example, a factor of
+                    # 10 can be used to divide all values in the chart by 10.
+                    # This field is optional.
+                "baselineValueData": { # The data included in a domain or series. # The data for scorecard baseline value.
+                    # This field is optional.
+                  "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                    "sources": [ # The ranges of data for a series or domain.
+                        # Exactly one dimension must have a length of 1,
+                        # and all sources in the list must have the same dimension
+                        # with length 1.
+                        # The domain (if it exists) &amp; all series must have the same number
+                        # of source ranges. If using more than one source range, then the source
+                        # range at a given offset must be in order and contiguous across the domain
+                        # and series.
+                        #
+                        # For example, these are valid configurations:
+                        #
+                        #     domain sources: A1:A5
+                        #     series1 sources: B1:B5
+                        #     series2 sources: D6:D10
+                        #
+                        #     domain sources: A1:A5, C10:C12
+                        #     series1 sources: B1:B5, D10:D12
+                        #     series2 sources: C1:C5, E10:E12
+                      { # A range on a sheet.
+                          # All indexes are zero-based.
+                          # Indexes are half open, e.g the start index is inclusive
+                          # and the end index is exclusive -- [start_index, end_index).
+                          # Missing indexes indicate the range is unbounded on that side.
+                          #
+                          # For example, if `"Sheet1"` is sheet ID 0, then:
+                          #
+                          #   `Sheet1!A1:A1 == sheet_id: 0,
+                          #                   start_row_index: 0, end_row_index: 1,
+                          #                   start_column_index: 0, end_column_index: 1`
+                          #
+                          #   `Sheet1!A3:B4 == sheet_id: 0,
+                          #                   start_row_index: 2, end_row_index: 4,
+                          #                   start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A:B == sheet_id: 0,
+                          #                 start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A5:B == sheet_id: 0,
+                          #                  start_row_index: 4,
+                          #                  start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1 == sheet_id:0`
+                          #
+                          # The start index must always be less than or equal to the end index.
+                          # If the start index equals the end index, then the range is empty.
+                          # Empty ranges are typically not meaningful and are usually rendered in the
+                          # UI as `#REF!`.
+                        "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "sheetId": 42, # The sheet this range is on.
+                        "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      },
+                    ],
+                  },
+                },
               },
               "titleTextPosition": { # Position settings for text. # The title text position.
                   # This field is optional.
                 "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
               },
+              "backgroundColorStyle": { # A color value. # The background color of the entire chart.
+                  # Not applicable to Org charts.
+                  # If background_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
               "hiddenDimensionStrategy": "A String", # Determines how the charts will use hidden rows or columns.
-              "pieChart": { # A <a href="/chart/interactive/docs/gallery/piechart">pie chart</a>. # A pie chart specification.
+              "pieChart": { # A &lt;a href="/chart/interactive/docs/gallery/piechart"&gt;pie chart&lt;/a&gt;. # A pie chart specification.
                 "series": { # The data included in a domain or series. # The data that covers the one and only series of the pie chart.
                   "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                     "sources": [ # The ranges of data for a series or domain.
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -6180,7 +14185,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -6236,8 +14241,8 @@
                 "legendPosition": "A String", # Where the legend of the pie chart should be drawn.
                 "pieHole": 3.14, # The size of the hole in the pie chart.
               },
-              "candlestickChart": { # A <a href="/chart/interactive/docs/gallery/candlestickchart">candlestick # A candlestick chart specification.
-                  # chart</a>.
+              "candlestickChart": { # A &lt;a href="/chart/interactive/docs/gallery/candlestickchart"&gt;candlestick # A candlestick chart specification.
+                  # chart&lt;/a&gt;.
                 "domain": { # The domain of a CandlestickChart. # The domain data (horizontal axis) for the candlestick chart.  String data
                     # will be treated as discrete labels, other data will be treated as
                     # continuous values.
@@ -6248,7 +14253,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -6313,7 +14318,7 @@
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -6374,7 +14379,7 @@
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -6436,7 +14441,7 @@
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -6498,7 +14503,7 @@
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -6558,140 +14563,287 @@
                   # This field is optional.
                 "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
               },
-              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the entire chart.
-                  # Not applicable to Org charts.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
+              "subtitleTextFormat": { # The format of a run of text in a cell. # The subtitle text format.
+                  # Strikethrough and underline are not supported.
+                  # Absent values indicate that the field isn't specified.
+                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
                     #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
                     #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "bold": True or False, # True if the text is bold.
+                "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                    # If foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "strikethrough": True or False, # True if the text has a strikethrough.
+                "fontFamily": "A String", # The font family.
+                "fontSize": 42, # The size of the font.
+                "italic": True or False, # True if the text is italicized.
+                "underline": True or False, # True if the text is underlined.
               },
               "maximized": True or False, # True to make a chart fill the entire space in which it's rendered with
                   # minimum padding.  False to use the default padding.
@@ -6707,7 +14859,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -6840,14 +14992,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -6877,11 +15029,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -6904,6 +15056,144 @@
                         "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
+                      "colorStyle": { # A color value. # The color of the column.
+                          # If color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "label": "A String", # The label of the column's legend.
                     },
                     "subtotalColumnsStyle": { # Styles for a waterfall chart column. # Styles for all subtotal columns in this series.
@@ -6977,14 +15267,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -7014,11 +15304,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -7041,6 +15331,144 @@
                         "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
+                      "colorStyle": { # A color value. # The color of the column.
+                          # If color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "label": "A String", # The label of the column's legend.
                     },
                     "negativeColumnsStyle": { # Styles for a waterfall chart column. # Styles for all columns in this series with negative values.
@@ -7114,14 +15542,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -7151,11 +15579,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -7178,6 +15606,144 @@
                         "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
+                      "colorStyle": { # A color value. # The color of the column.
+                          # If color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "label": "A String", # The label of the column's legend.
                     },
                     "customSubtotals": [ # Custom subtotal columns appearing in this series. The order in which
@@ -7203,7 +15769,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -7265,6 +15831,8 @@
                   # of charts this supports.
                 "stackedType": "A String", # The stacked type for charts that support vertical stacking.
                     # Applies to Area, Bar, Column, Combo, and Stepped Area charts.
+                "compareMode": "A String", # The behavior of tooltips and data highlighting when hovering on data and
+                    # chart area.
                 "headerCount": 42, # The number of rows or columns in the data that are "headers".
                     # If not set, Google Sheets will guess how many rows are headers based
                     # on the data.
@@ -7275,8 +15843,147 @@
                   { # A single series of data in a chart.
                       # For example, if charting stock prices over time, multiple series may exist,
                       # one for the "Open Price", "High Price", "Low Price" and "Close Price".
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color for elements (i.e. bars, lines, points) associated with this
-                        # series.  If empty, a default color is used.
+                    "colorStyle": { # A color value. # The color for elements (such as bars, lines, and points) associated with
+                        # this series.  If empty, a default color is used.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color for elements (such as bars, lines, and points) associated with
+                        # this series.  If empty, a default color is used.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
                         # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -7346,14 +16053,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -7383,11 +16090,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -7416,7 +16123,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -7475,6 +16182,12 @@
                         # prices.
                         # It is an error to specify an axis that isn't a valid minor axis
                         # for the chart's type.
+                    "type": "A String", # The type of this series. Valid only if the
+                        # chartType is
+                        # COMBO.
+                        # Different types will change the way the series is visualized.
+                        # Only LINE, AREA,
+                        # and COLUMN are supported.
                     "lineStyle": { # Properties that describe the style of a line. # The line style of this series. Valid only if the
                         # chartType is AREA,
                         # LINE, or SCATTER.
@@ -7484,12 +16197,6 @@
                       "width": 42, # The thickness of the line, in px.
                       "type": "A String", # The dash type of the line.
                     },
-                    "type": "A String", # The type of this series. Valid only if the
-                        # chartType is
-                        # COMBO.
-                        # Different types will change the way the series is visualized.
-                        # Only LINE, AREA,
-                        # and COLUMN are supported.
                   },
                 ],
                 "interpolateNulls": True or False, # If some values in a series are missing, gaps may appear in the chart (e.g,
@@ -7499,8 +16206,8 @@
                 "legendPosition": "A String", # The position of the chart legend.
                 "lineSmoothing": True or False, # Gets whether all lines should be rendered smooth or straight by default.
                     # Applies to Line charts.
-                "compareMode": "A String", # The behavior of tooltips and data highlighting when hovering on data and
-                    # chart area.
+                "threeDimensional": True or False, # True to make the chart 3D.
+                    # Applies to Bar and Column charts.
                 "domains": [ # The domain of data this is charting.
                     # Only a single domain is supported.
                   { # The domain of a chart.
@@ -7513,7 +16220,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -7568,13 +16275,10 @@
                   },
                 ],
                 "chartType": "A String", # The type of the chart.
-                "threeDimensional": True or False, # True to make the chart 3D.
-                    # Applies to Bar and Column charts.
                 "axis": [ # The axis on the chart.
                   { # An axis of the chart.
                       # A chart may not have more than one axis per
                       # axis position.
-                    "position": "A String", # The position of this axis.
                     "format": { # The format of a run of text in a cell. # The format of the title.
                         # Only valid if the axis is not associated with the domain.
                         # Absent values indicate that the field isn't specified.
@@ -7648,14 +16352,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -7685,11 +16389,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -7713,21 +16417,168 @@
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
                       "bold": True or False, # True if the text is bold.
+                      "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                          # If foreground_color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "strikethrough": True or False, # True if the text has a strikethrough.
                       "fontFamily": "A String", # The font family.
                       "fontSize": 42, # The size of the font.
                       "italic": True or False, # True if the text is italicized.
                       "underline": True or False, # True if the text is underlined.
                     },
-                    "title": "A String", # The title of this axis. If set, this overrides any title inferred
-                        # from headers of the data.
+                    "position": "A String", # The position of this axis.
+                    "viewWindowOptions": { # The options that define a "view window" for a chart (such as the visible # The view window options for this axis.
+                        # values in an axis).
+                      "viewWindowMin": 3.14, # The minimum numeric value to be shown in this view window. If unset, will
+                          # automatically determine a minimum value that looks good for the data.
+                      "viewWindowMax": 3.14, # The maximum numeric value to be shown in this view window. If unset, will
+                          # automatically determine a maximum value that looks good for the data.
+                      "viewWindowMode": "A String", # The view window's mode.
+                    },
                     "titleTextPosition": { # Position settings for text. # The axis title text position.
                       "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
                     },
+                    "title": "A String", # The title of this axis. If set, this overrides any title inferred
+                        # from headers of the data.
                   },
                 ],
               },
-              "histogramChart": { # A <a href="/chart/interactive/docs/gallery/histogram">histogram chart</a>. # A histogram chart specification.
+              "histogramChart": { # A &lt;a href="/chart/interactive/docs/gallery/histogram"&gt;histogram chart&lt;/a&gt;. # A histogram chart specification.
                   # A histogram chart groups data items into bins, displaying each bin as a
                   # column of stacked items.  Histograms are used to display the distribution
                   # of a dataset.  Each column of items represents a range into which those
@@ -7814,14 +16665,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -7851,11 +16702,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -7878,13 +16729,152 @@
                       "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                       "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                     },
+                    "barColorStyle": { # A color value. # The color of the column representing this series in each bucket.
+                        # This field is optional.
+                        # If bar_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
                     "data": { # The data included in a domain or series. # The data for this histogram series.
                       "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                         "sources": [ # The ranges of data for a series or domain.
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -7947,141 +16937,9 @@
                     # Cannot be negative.
                     # This field is optional.
               },
-              "bubbleChart": { # A <a href="/chart/interactive/docs/gallery/bubblechart">bubble chart</a>. # A bubble chart specification.
-                "bubbleBorderColor": { # Represents a color in the RGBA color space. This representation is designed # The bubble border color.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                },
+              "bubbleChart": { # A &lt;a href="/chart/interactive/docs/gallery/bubblechart"&gt;bubble chart&lt;/a&gt;. # A bubble chart specification.
+                "bubbleOpacity": 3.14, # The opacity of the bubbles between 0 and 1.0.
+                    # 0 is fully transparent and 1 is fully opaque.
                 "domain": { # The data included in a domain or series. # The data containing the bubble x-values.  These values locate the bubbles
                     # in the chart horizontally.
                   "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
@@ -8089,7 +16947,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -8214,14 +17072,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -8251,11 +17109,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -8279,6 +17137,144 @@
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
                   "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "strikethrough": True or False, # True if the text has a strikethrough.
                   "fontFamily": "A String", # The font family.
                   "fontSize": 42, # The size of the font.
@@ -8292,7 +17288,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -8344,11 +17340,281 @@
                     ],
                   },
                 },
+                "bubbleBorderColorStyle": { # A color value. # The bubble border color.
+                    # If bubble_border_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "legendPosition": "A String", # Where the legend of the chart should be drawn.
                 "bubbleMaxRadiusSize": 42, # The max radius size of the bubbles, in pixels.
                     # If specified, the field must be a positive value.
-                "bubbleOpacity": 3.14, # The opacity of the bubbles between 0 and 1.0.
-                    # 0 is fully transparent and 1 is fully opaque.
+                "bubbleBorderColor": { # Represents a color in the RGBA color space. This representation is designed # The bubble border color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
                 "groupIds": { # The data included in a domain or series. # The data containing the bubble group IDs. All bubbles with the same group
                     # ID are drawn in the same color. If bubble_sizes is specified then
                     # this field must also be specified but may contain blank values.
@@ -8358,7 +17624,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -8419,7 +17685,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -8477,7 +17743,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -8532,7 +17798,7 @@
                 "bubbleMinRadiusSize": 42, # The minimum radius size of the bubbles, in pixels.
                     # If specific, the field must be a positive value.
               },
-              "orgChart": { # An <a href="/chart/interactive/docs/gallery/orgchart">org chart</a>. # An org chart specification.
+              "orgChart": { # An &lt;a href="/chart/interactive/docs/gallery/orgchart"&gt;org chart&lt;/a&gt;. # An org chart specification.
                   # Org charts require a unique set of labels in labels and may
                   # optionally include parent_labels and tooltips.
                   # parent_labels contain, for each node, the label identifying the parent
@@ -8551,7 +17817,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -8612,7 +17878,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -8734,14 +18000,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -8771,11 +18037,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -8805,7 +18071,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -8927,14 +18193,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -8964,11 +18230,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -8991,6 +18257,282 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
+                "nodeColorStyle": { # A color value. # The color of the org chart nodes.
+                    # If node_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "selectedNodeColorStyle": { # A color value. # The color of the selected org chart nodes.
+                    # If selected_node_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "nodeSize": "A String", # The size of the org chart nodes.
               },
             },
@@ -9069,8 +18611,15 @@
                   # Conditional formatting can only apply a subset of formatting:
                   # bold, italic,
                   # strikethrough,
-                  # foreground color &
+                  # foreground color &amp;
                   # background color.
+                "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                    # When updating padding, every field must be specified.
+                  "top": 42, # The top padding of the cell.
+                  "left": 42, # The left padding of the cell.
+                  "right": 42, # The right padding of the cell.
+                  "bottom": 42, # The bottom padding of the cell.
+                },
                 "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                   "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                       # the user's locale will be used if necessary for the given type.
@@ -9080,12 +18629,143 @@
                       # When writing, this field must be set.
                 },
                 "textDirection": "A String", # The direction of the text in the cell.
-                "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                    # When updating padding, every field must be specified.
-                  "top": 42, # The top padding of the cell.
-                  "left": 42, # The left padding of the cell.
-                  "right": 42, # The right padding of the cell.
-                  "bottom": 42, # The bottom padding of the cell.
+                "backgroundColorStyle": { # A color value. # The background color of the cell.
+                    # If background_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
                 },
                 "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                 "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -9158,14 +18838,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -9195,11 +18875,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -9295,14 +18975,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -9332,11 +19012,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -9361,284 +19041,144 @@
                     },
                     "width": 42, # The width of the border, in pixels.
                         # Deprecated; the width is determined by the "style" field.
-                    "style": "A String", # The style of the border.
-                  },
-                  "right": { # A border along a cell. # The right border of the cell.
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
                           #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
                           #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
                     },
-                    "width": 42, # The width of the border, in pixels.
-                        # Deprecated; the width is determined by the "style" field.
-                    "style": "A String", # The style of the border.
-                  },
-                  "bottom": { # A border along a cell. # The bottom border of the cell.
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                    },
-                    "width": 42, # The width of the border, in pixels.
-                        # Deprecated; the width is determined by the "style" field.
                     "style": "A String", # The style of the border.
                   },
                   "left": { # A border along a cell. # The left border of the cell.
@@ -9712,14 +19252,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -9749,11 +19289,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -9778,6 +19318,698 @@
                     },
                     "width": 42, # The width of the border, in pixels.
                         # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "style": "A String", # The style of the border.
+                  },
+                  "right": { # A border along a cell. # The right border of the cell.
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "width": 42, # The width of the border, in pixels.
+                        # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "style": "A String", # The style of the border.
+                  },
+                  "bottom": { # A border along a cell. # The bottom border of the cell.
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "width": 42, # The width of the border, in pixels.
+                        # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
                     "style": "A String", # The style of the border.
                   },
                 },
@@ -9875,14 +20107,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -9912,11 +20144,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -9940,6 +20172,144 @@
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
                   "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "strikethrough": True or False, # True if the text has a strikethrough.
                   "fontFamily": "A String", # The font family.
                   "fontSize": 42, # The size of the font.
@@ -10026,14 +20396,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -10063,11 +20433,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -10090,6 +20460,144 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "type": "A String", # How the value should be interpreted.
                 "value": "A String", # The value this interpolation point uses.  May be a formula.
                     # Unused if type is MIN or
@@ -10168,14 +20676,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -10205,11 +20713,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -10232,6 +20740,144 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "type": "A String", # How the value should be interpreted.
                 "value": "A String", # The value this interpolation point uses.  May be a formula.
                     # Unused if type is MIN or
@@ -10310,14 +20956,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -10347,11 +20993,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -10374,6 +21020,144 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "type": "A String", # How the value should be interpreted.
                 "value": "A String", # The value this interpolation point uses.  May be a formula.
                     # Unused if type is MIN or
@@ -10385,124 +21169,6 @@
         "deleteBanding": { # Removes the banded range with the given ID from the spreadsheet. # Removes a banded range
           "bandedRangeId": 42, # The ID of the banded range to delete.
         },
-        "updateProtectedRange": { # Updates an existing protected range with the specified # Updates a protected range.
-            # protectedRangeId.
-          "fields": "A String", # The fields that should be updated.  At least one field must be specified.
-              # The root `protectedRange` is implied and should not be specified.
-              # A single `"*"` can be used as short-hand for listing every field.
-          "protectedRange": { # A protected range. # The protected range to update with the new properties.
-            "unprotectedRanges": [ # The list of unprotected ranges within a protected sheet.
-                # Unprotected ranges are only supported on protected sheets.
-              { # A range on a sheet.
-                  # All indexes are zero-based.
-                  # Indexes are half open, e.g the start index is inclusive
-                  # and the end index is exclusive -- [start_index, end_index).
-                  # Missing indexes indicate the range is unbounded on that side.
-                  #
-                  # For example, if `"Sheet1"` is sheet ID 0, then:
-                  #
-                  #   `Sheet1!A1:A1 == sheet_id: 0,
-                  #                   start_row_index: 0, end_row_index: 1,
-                  #                   start_column_index: 0, end_column_index: 1`
-                  #
-                  #   `Sheet1!A3:B4 == sheet_id: 0,
-                  #                   start_row_index: 2, end_row_index: 4,
-                  #                   start_column_index: 0, end_column_index: 2`
-                  #
-                  #   `Sheet1!A:B == sheet_id: 0,
-                  #                 start_column_index: 0, end_column_index: 2`
-                  #
-                  #   `Sheet1!A5:B == sheet_id: 0,
-                  #                  start_row_index: 4,
-                  #                  start_column_index: 0, end_column_index: 2`
-                  #
-                  #   `Sheet1 == sheet_id:0`
-                  #
-                  # The start index must always be less than or equal to the end index.
-                  # If the start index equals the end index, then the range is empty.
-                  # Empty ranges are typically not meaningful and are usually rendered in the
-                  # UI as `#REF!`.
-                "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-                "sheetId": 42, # The sheet this range is on.
-                "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-              },
-            ],
-            "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the
-                # protected area.
-                # This field is read-only.
-            "description": "A String", # The description of this protected range.
-            "namedRangeId": "A String", # The named range this protected range is backed by, if any.
-                #
-                # When writing, only one of range or named_range_id
-                # may be set.
-            "range": { # A range on a sheet. # The range that is being protected.
-                # The range may be fully unbounded, in which case this is considered
-                # a protected sheet.
-                #
-                # When writing, only one of range or named_range_id
-                # may be set.
-                # All indexes are zero-based.
-                # Indexes are half open, e.g the start index is inclusive
-                # and the end index is exclusive -- [start_index, end_index).
-                # Missing indexes indicate the range is unbounded on that side.
-                #
-                # For example, if `"Sheet1"` is sheet ID 0, then:
-                #
-                #   `Sheet1!A1:A1 == sheet_id: 0,
-                #                   start_row_index: 0, end_row_index: 1,
-                #                   start_column_index: 0, end_column_index: 1`
-                #
-                #   `Sheet1!A3:B4 == sheet_id: 0,
-                #                   start_row_index: 2, end_row_index: 4,
-                #                   start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A:B == sheet_id: 0,
-                #                 start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A5:B == sheet_id: 0,
-                #                  start_row_index: 4,
-                #                  start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1 == sheet_id:0`
-                #
-                # The start index must always be less than or equal to the end index.
-                # If the start index equals the end index, then the range is empty.
-                # Empty ranges are typically not meaningful and are usually rendered in the
-                # UI as `#REF!`.
-              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-              "sheetId": 42, # The sheet this range is on.
-              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-            },
-            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
-                # This field is only visible to users with edit access to the protected
-                # range and the document.
-                # Editors are not supported with warning_only protection.
-              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
-                  # range.  Domain protection is only supported on documents within a domain.
-              "users": [ # The email addresses of users with edit access to the protected range.
-                "A String",
-              ],
-              "groups": [ # The email addresses of groups with edit access to the protected range.
-                "A String",
-              ],
-            },
-            "protectedRangeId": 42, # The ID of the protected range.
-                # This field is read-only.
-            "warningOnly": True or False, # True if this protected range will show a warning when editing.
-                # Warning-based protection means that every user can edit data in the
-                # protected range, except editing will prompt a warning asking the user
-                # to confirm the edit.
-                #
-                # When writing: if this field is true, then editors is ignored.
-                # Additionally, if this field is changed from true to false and the
-                # `editors` field is not set (nor included in the field mask), then
-                # the editors will be set to all the editors in the document.
-          },
-        },
         "repeatCell": { # Updates all cells in the range to the values in the given Cell object. # Repeats a single cell across a range.
             # Only the fields listed in the fields field are updated; others are
             # unchanged.
@@ -10567,15 +21233,15 @@
                       "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                           # (Note that formulaValue is not valid,
                           #  because the values will be calculated.)
-                        "numberValue": 3.14, # Represents a double value.
-                            # Note: Dates, Times and DateTimes are represented as doubles in
-                            # "serial number" format.
-                        "boolValue": True or False, # Represents a boolean value.
-                        "formulaValue": "A String", # Represents a formula.
                         "stringValue": "A String", # Represents a string value.
                             # Leading single quotes are not included. For example, if the user typed
                             # `'123` into the UI, this would be represented as a `stringValue` of
                             # `"123"`.
+                        "boolValue": True or False, # Represents a boolean value.
+                        "numberValue": 3.14, # Represents a double value.
+                            # Note: Dates, Times and DateTimes are represented as doubles in
+                            # "serial number" format.
+                        "formulaValue": "A String", # Represents a formula.
                         "errorValue": { # An error in a cell. # Represents an error.
                             # This field is read-only.
                           "message": "A String", # A message with more information about the error
@@ -10589,7 +21255,7 @@
                       # If not specified, sorting is alphabetical by this group's values.
                     "buckets": [ # Determines the bucket from which values are chosen to sort.
                         #
-                        # For example, in a pivot table with one row group & two column groups,
+                        # For example, in a pivot table with one row group &amp; two column groups,
                         # the row group can list up to two values. The first value corresponds
                         # to a value within the first column group, and the second value
                         # corresponds to a value in the second column group.  If no values
@@ -10597,15 +21263,15 @@
                         # to the "Grand Total" over the column groups. If a single value is listed,
                         # this would correspond to using the "Total" of that bucket.
                       { # The kinds of value that a cell in a spreadsheet can have.
-                        "numberValue": 3.14, # Represents a double value.
-                            # Note: Dates, Times and DateTimes are represented as doubles in
-                            # "serial number" format.
-                        "boolValue": True or False, # Represents a boolean value.
-                        "formulaValue": "A String", # Represents a formula.
                         "stringValue": "A String", # Represents a string value.
                             # Leading single quotes are not included. For example, if the user typed
                             # `'123` into the UI, this would be represented as a `stringValue` of
                             # `"123"`.
+                        "boolValue": True or False, # Represents a boolean value.
+                        "numberValue": 3.14, # Represents a double value.
+                            # Note: Dates, Times and DateTimes are represented as doubles in
+                            # "serial number" format.
+                        "formulaValue": "A String", # Represents a formula.
                         "errorValue": { # An error in a cell. # Represents an error.
                             # This field is read-only.
                           "message": "A String", # A message with more information about the error
@@ -10618,6 +21284,11 @@
                         # grouping should be sorted by.
                   },
                   "sortOrder": "A String", # The order the values in this group should be sorted.
+                  "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
+                      #
+                      # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                      # means this group refers to column `C`, whereas the offset `1` would
+                      # refer to column `D`.
                   "groupRule": { # An optional setting on a PivotGroup that defines buckets for the values # The group rule to apply to this row/column group.
                       # in the source data column rather than breaking out each individual value.
                       # Only one PivotGroup with a group rule may be added for each column in
@@ -10650,10 +21321,10 @@
                         #     +-------------+-------------------+
                         #     | Grouped Age | AVERAGE of Amount |
                         #     +-------------+-------------------+
-                        #     | < 25        |            $19.34 |
+                        #     | &lt; 25        |            $19.34 |
                         #     | 25-45       |            $31.43 |
                         #     | 45-65       |            $35.87 |
-                        #     | > 65        |            $27.55 |
+                        #     | &gt; 65        |            $27.55 |
                         #     +-------------+-------------------+
                         #     | Grand Total |            $29.12 |
                         #     +-------------+-------------------+
@@ -10700,15 +21371,15 @@
                               # group within a given ManualRule. Items that do not appear in any
                               # group will appear on their own.
                             { # The kinds of value that a cell in a spreadsheet can have.
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
+                              "formulaValue": "A String", # Represents a formula.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
@@ -10719,15 +21390,15 @@
                           ],
                           "groupName": { # The kinds of value that a cell in a spreadsheet can have. # The group name, which must be a string. Each group in a given
                               # ManualRule must have a unique group name.
-                            "numberValue": 3.14, # Represents a double value.
-                                # Note: Dates, Times and DateTimes are represented as doubles in
-                                # "serial number" format.
-                            "boolValue": True or False, # Represents a boolean value.
-                            "formulaValue": "A String", # Represents a formula.
                             "stringValue": "A String", # Represents a string value.
                                 # Leading single quotes are not included. For example, if the user typed
                                 # `'123` into the UI, this would be represented as a `stringValue` of
                                 # `"123"`.
+                            "boolValue": True or False, # Represents a boolean value.
+                            "numberValue": 3.14, # Represents a double value.
+                                # Note: Dates, Times and DateTimes are represented as doubles in
+                                # "serial number" format.
+                            "formulaValue": "A String", # Represents a formula.
                             "errorValue": { # An error in a cell. # Represents an error.
                                 # This field is read-only.
                               "message": "A String", # A message with more information about the error
@@ -10764,11 +21435,6 @@
                       "type": "A String", # The type of date-time grouping to apply.
                     },
                   },
-                  "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
-                      #
-                      # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                      # means this group refers to column `C`, whereas the offset `1` would refer
-                      # to column `D`.
                 },
               ],
               "source": { # A range on a sheet. # The range the pivot table is reading data from.
@@ -10810,18 +21476,18 @@
                 { # The definition of how a value in a pivot table should be calculated.
                   "formula": "A String", # A custom formula to calculate the value.  The formula must start
                       # with an `=` character.
-                  "name": "A String", # A name to use for the value.
-                  "sourceColumnOffset": 42, # The column offset of the source range that this value reads from.
-                      #
-                      # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                      # means this value refers to column `C`, whereas the offset `1` would
-                      # refer to column `D`.
                   "summarizeFunction": "A String", # A function to summarize the value.
                       # If formula is set, the only supported values are
                       # SUM and
                       # CUSTOM.
                       # If sourceColumnOffset is set, then `CUSTOM`
                       # is not supported.
+                  "name": "A String", # A name to use for the value.
+                  "sourceColumnOffset": 42, # The column offset of the source range that this value reads from.
+                      #
+                      # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                      # means this value refers to column `C`, whereas the offset `1` would
+                      # refer to column `D`.
                   "calculatedDisplayType": "A String", # If specified, indicates that pivot values should be displayed as
                       # the result of a calculation with another pivot value. For example, if
                       # calculated_display_type is specified as PERCENT_OF_GRAND_TOTAL, all the
@@ -10887,15 +21553,15 @@
                       "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                           # (Note that formulaValue is not valid,
                           #  because the values will be calculated.)
-                        "numberValue": 3.14, # Represents a double value.
-                            # Note: Dates, Times and DateTimes are represented as doubles in
-                            # "serial number" format.
-                        "boolValue": True or False, # Represents a boolean value.
-                        "formulaValue": "A String", # Represents a formula.
                         "stringValue": "A String", # Represents a string value.
                             # Leading single quotes are not included. For example, if the user typed
                             # `'123` into the UI, this would be represented as a `stringValue` of
                             # `"123"`.
+                        "boolValue": True or False, # Represents a boolean value.
+                        "numberValue": 3.14, # Represents a double value.
+                            # Note: Dates, Times and DateTimes are represented as doubles in
+                            # "serial number" format.
+                        "formulaValue": "A String", # Represents a formula.
                         "errorValue": { # An error in a cell. # Represents an error.
                             # This field is read-only.
                           "message": "A String", # A message with more information about the error
@@ -10909,7 +21575,7 @@
                       # If not specified, sorting is alphabetical by this group's values.
                     "buckets": [ # Determines the bucket from which values are chosen to sort.
                         #
-                        # For example, in a pivot table with one row group & two column groups,
+                        # For example, in a pivot table with one row group &amp; two column groups,
                         # the row group can list up to two values. The first value corresponds
                         # to a value within the first column group, and the second value
                         # corresponds to a value in the second column group.  If no values
@@ -10917,15 +21583,15 @@
                         # to the "Grand Total" over the column groups. If a single value is listed,
                         # this would correspond to using the "Total" of that bucket.
                       { # The kinds of value that a cell in a spreadsheet can have.
-                        "numberValue": 3.14, # Represents a double value.
-                            # Note: Dates, Times and DateTimes are represented as doubles in
-                            # "serial number" format.
-                        "boolValue": True or False, # Represents a boolean value.
-                        "formulaValue": "A String", # Represents a formula.
                         "stringValue": "A String", # Represents a string value.
                             # Leading single quotes are not included. For example, if the user typed
                             # `'123` into the UI, this would be represented as a `stringValue` of
                             # `"123"`.
+                        "boolValue": True or False, # Represents a boolean value.
+                        "numberValue": 3.14, # Represents a double value.
+                            # Note: Dates, Times and DateTimes are represented as doubles in
+                            # "serial number" format.
+                        "formulaValue": "A String", # Represents a formula.
                         "errorValue": { # An error in a cell. # Represents an error.
                             # This field is read-only.
                           "message": "A String", # A message with more information about the error
@@ -10938,6 +21604,11 @@
                         # grouping should be sorted by.
                   },
                   "sortOrder": "A String", # The order the values in this group should be sorted.
+                  "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
+                      #
+                      # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                      # means this group refers to column `C`, whereas the offset `1` would
+                      # refer to column `D`.
                   "groupRule": { # An optional setting on a PivotGroup that defines buckets for the values # The group rule to apply to this row/column group.
                       # in the source data column rather than breaking out each individual value.
                       # Only one PivotGroup with a group rule may be added for each column in
@@ -10970,10 +21641,10 @@
                         #     +-------------+-------------------+
                         #     | Grouped Age | AVERAGE of Amount |
                         #     +-------------+-------------------+
-                        #     | < 25        |            $19.34 |
+                        #     | &lt; 25        |            $19.34 |
                         #     | 25-45       |            $31.43 |
                         #     | 45-65       |            $35.87 |
-                        #     | > 65        |            $27.55 |
+                        #     | &gt; 65        |            $27.55 |
                         #     +-------------+-------------------+
                         #     | Grand Total |            $29.12 |
                         #     +-------------+-------------------+
@@ -11020,15 +21691,15 @@
                               # group within a given ManualRule. Items that do not appear in any
                               # group will appear on their own.
                             { # The kinds of value that a cell in a spreadsheet can have.
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
+                              "formulaValue": "A String", # Represents a formula.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
@@ -11039,15 +21710,15 @@
                           ],
                           "groupName": { # The kinds of value that a cell in a spreadsheet can have. # The group name, which must be a string. Each group in a given
                               # ManualRule must have a unique group name.
-                            "numberValue": 3.14, # Represents a double value.
-                                # Note: Dates, Times and DateTimes are represented as doubles in
-                                # "serial number" format.
-                            "boolValue": True or False, # Represents a boolean value.
-                            "formulaValue": "A String", # Represents a formula.
                             "stringValue": "A String", # Represents a string value.
                                 # Leading single quotes are not included. For example, if the user typed
                                 # `'123` into the UI, this would be represented as a `stringValue` of
                                 # `"123"`.
+                            "boolValue": True or False, # Represents a boolean value.
+                            "numberValue": 3.14, # Represents a double value.
+                                # Note: Dates, Times and DateTimes are represented as doubles in
+                                # "serial number" format.
+                            "formulaValue": "A String", # Represents a formula.
                             "errorValue": { # An error in a cell. # Represents an error.
                                 # This field is read-only.
                               "message": "A String", # A message with more information about the error
@@ -11084,11 +21755,6 @@
                       "type": "A String", # The type of date-time grouping to apply.
                     },
                   },
-                  "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
-                      #
-                      # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                      # means this group refers to column `C`, whereas the offset `1` would refer
-                      # to column `D`.
                 },
               ],
             },
@@ -11100,15 +21766,15 @@
                 # the calculated value.  For cells with literals, this is
                 # the same as the user_entered_value.
                 # This field is read-only.
-              "numberValue": 3.14, # Represents a double value.
-                  # Note: Dates, Times and DateTimes are represented as doubles in
-                  # "serial number" format.
-              "boolValue": True or False, # Represents a boolean value.
-              "formulaValue": "A String", # Represents a formula.
               "stringValue": "A String", # Represents a string value.
                   # Leading single quotes are not included. For example, if the user typed
                   # `'123` into the UI, this would be represented as a `stringValue` of
                   # `"123"`.
+              "boolValue": True or False, # Represents a boolean value.
+              "numberValue": 3.14, # Represents a double value.
+                  # Note: Dates, Times and DateTimes are represented as doubles in
+                  # "serial number" format.
+              "formulaValue": "A String", # Represents a formula.
               "errorValue": { # An error in a cell. # Represents an error.
                   # This field is read-only.
                 "message": "A String", # A message with more information about the error
@@ -11122,15 +21788,15 @@
             "userEnteredValue": { # The kinds of value that a cell in a spreadsheet can have. # The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()`
                 # Note: Dates, Times and DateTimes are represented as doubles in
                 # serial number format.
-              "numberValue": 3.14, # Represents a double value.
-                  # Note: Dates, Times and DateTimes are represented as doubles in
-                  # "serial number" format.
-              "boolValue": True or False, # Represents a boolean value.
-              "formulaValue": "A String", # Represents a formula.
               "stringValue": "A String", # Represents a string value.
                   # Leading single quotes are not included. For example, if the user typed
                   # `'123` into the UI, this would be represented as a `stringValue` of
                   # `"123"`.
+              "boolValue": True or False, # Represents a boolean value.
+              "numberValue": 3.14, # Represents a double value.
+                  # Note: Dates, Times and DateTimes are represented as doubles in
+                  # "serial number" format.
+              "formulaValue": "A String", # Represents a formula.
               "errorValue": { # An error in a cell. # Represents an error.
                   # This field is read-only.
                 "message": "A String", # A message with more information about the error
@@ -11145,6 +21811,13 @@
                 # If the effective format is the default format, effective format will
                 # not be written.
                 # This field is read-only.
+              "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                  # When updating padding, every field must be specified.
+                "top": 42, # The top padding of the cell.
+                "left": 42, # The left padding of the cell.
+                "right": 42, # The right padding of the cell.
+                "bottom": 42, # The bottom padding of the cell.
+              },
               "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                 "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                     # the user's locale will be used if necessary for the given type.
@@ -11154,12 +21827,143 @@
                     # When writing, this field must be set.
               },
               "textDirection": "A String", # The direction of the text in the cell.
-              "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                  # When updating padding, every field must be specified.
-                "top": 42, # The top padding of the cell.
-                "left": 42, # The left padding of the cell.
-                "right": 42, # The right padding of the cell.
-                "bottom": 42, # The bottom padding of the cell.
+              "backgroundColorStyle": { # A color value. # The background color of the cell.
+                  # If background_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
               },
               "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
               "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -11232,14 +22036,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -11269,11 +22073,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -11369,14 +22173,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -11406,11 +22210,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -11435,284 +22239,144 @@
                   },
                   "width": 42, # The width of the border, in pixels.
                       # Deprecated; the width is determined by the "style" field.
-                  "style": "A String", # The style of the border.
-                },
-                "right": { # A border along a cell. # The right border of the cell.
-                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
+                  "colorStyle": { # A color value. # The color of the border.
+                      # If color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
                         #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
                         #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
                   },
-                  "width": 42, # The width of the border, in pixels.
-                      # Deprecated; the width is determined by the "style" field.
-                  "style": "A String", # The style of the border.
-                },
-                "bottom": { # A border along a cell. # The bottom border of the cell.
-                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
-                        #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                        #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                  },
-                  "width": 42, # The width of the border, in pixels.
-                      # Deprecated; the width is determined by the "style" field.
                   "style": "A String", # The style of the border.
                 },
                 "left": { # A border along a cell. # The left border of the cell.
@@ -11786,14 +22450,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -11823,11 +22487,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -11852,6 +22516,698 @@
                   },
                   "width": 42, # The width of the border, in pixels.
                       # Deprecated; the width is determined by the "style" field.
+                  "colorStyle": { # A color value. # The color of the border.
+                      # If color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "style": "A String", # The style of the border.
+                },
+                "right": { # A border along a cell. # The right border of the cell.
+                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "width": 42, # The width of the border, in pixels.
+                      # Deprecated; the width is determined by the "style" field.
+                  "colorStyle": { # A color value. # The color of the border.
+                      # If color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "style": "A String", # The style of the border.
+                },
+                "bottom": { # A border along a cell. # The bottom border of the cell.
+                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "width": 42, # The width of the border, in pixels.
+                      # Deprecated; the width is determined by the "style" field.
+                  "colorStyle": { # A color value. # The color of the border.
+                      # If color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "style": "A String", # The style of the border.
                 },
               },
@@ -11949,14 +23305,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -11986,11 +23342,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -12014,6 +23370,144 @@
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
                 "bold": True or False, # True if the text is bold.
+                "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                    # If foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "strikethrough": True or False, # True if the text has a strikethrough.
                 "fontFamily": "A String", # The font family.
                 "fontSize": 42, # The size of the font.
@@ -12025,6 +23519,13 @@
             "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell.
                 #
                 # When writing, the new format will be merged with the existing format.
+              "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                  # When updating padding, every field must be specified.
+                "top": 42, # The top padding of the cell.
+                "left": 42, # The left padding of the cell.
+                "right": 42, # The right padding of the cell.
+                "bottom": 42, # The bottom padding of the cell.
+              },
               "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                 "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                     # the user's locale will be used if necessary for the given type.
@@ -12034,12 +23535,143 @@
                     # When writing, this field must be set.
               },
               "textDirection": "A String", # The direction of the text in the cell.
-              "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                  # When updating padding, every field must be specified.
-                "top": 42, # The top padding of the cell.
-                "left": 42, # The left padding of the cell.
-                "right": 42, # The right padding of the cell.
-                "bottom": 42, # The bottom padding of the cell.
+              "backgroundColorStyle": { # A color value. # The background color of the cell.
+                  # If background_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
               },
               "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
               "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -12112,14 +23744,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -12149,11 +23781,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -12249,14 +23881,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -12286,11 +23918,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -12315,284 +23947,144 @@
                   },
                   "width": 42, # The width of the border, in pixels.
                       # Deprecated; the width is determined by the "style" field.
-                  "style": "A String", # The style of the border.
-                },
-                "right": { # A border along a cell. # The right border of the cell.
-                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
+                  "colorStyle": { # A color value. # The color of the border.
+                      # If color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
                         #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
                         #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
                   },
-                  "width": 42, # The width of the border, in pixels.
-                      # Deprecated; the width is determined by the "style" field.
-                  "style": "A String", # The style of the border.
-                },
-                "bottom": { # A border along a cell. # The bottom border of the cell.
-                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
-                        #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                        #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                  },
-                  "width": 42, # The width of the border, in pixels.
-                      # Deprecated; the width is determined by the "style" field.
                   "style": "A String", # The style of the border.
                 },
                 "left": { # A border along a cell. # The left border of the cell.
@@ -12666,14 +24158,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -12703,11 +24195,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -12732,6 +24224,698 @@
                   },
                   "width": 42, # The width of the border, in pixels.
                       # Deprecated; the width is determined by the "style" field.
+                  "colorStyle": { # A color value. # The color of the border.
+                      # If color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "style": "A String", # The style of the border.
+                },
+                "right": { # A border along a cell. # The right border of the cell.
+                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "width": 42, # The width of the border, in pixels.
+                      # Deprecated; the width is determined by the "style" field.
+                  "colorStyle": { # A color value. # The color of the border.
+                      # If color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "style": "A String", # The style of the border.
+                },
+                "bottom": { # A border along a cell. # The bottom border of the cell.
+                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "width": 42, # The width of the border, in pixels.
+                      # Deprecated; the width is determined by the "style" field.
+                  "colorStyle": { # A color value. # The color of the border.
+                      # If color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "style": "A String", # The style of the border.
                 },
               },
@@ -12829,14 +25013,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -12866,11 +25050,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -12894,6 +25078,144 @@
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
                 "bold": True or False, # True if the text is bold.
+                "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                    # If foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "strikethrough": True or False, # True if the text has a strikethrough.
                 "fontFamily": "A String", # The font family.
                 "fontSize": 42, # The size of the font.
@@ -13020,14 +25342,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -13057,11 +25379,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -13085,6 +25407,144 @@
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
                   "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "strikethrough": True or False, # True if the text has a strikethrough.
                   "fontFamily": "A String", # The font family.
                   "fontSize": 42, # The size of the font.
@@ -13133,109 +25593,30 @@
             "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
         },
-        "findReplace": { # Finds and replaces data in cells over a range, sheet, or all sheets. # Finds and replaces occurrences of some text with other text.
-          "includeFormulas": True or False, # True if the search should include cells with formulas.
-              # False to skip cells with formulas.
-          "matchEntireCell": True or False, # True if the find value should match the entire cell.
-          "allSheets": True or False, # True to find/replace over all sheets.
-          "matchCase": True or False, # True if the search is case sensitive.
-          "find": "A String", # The value to search.
-          "range": { # A range on a sheet. # The range to find/replace over.
+        "deleteDimensionGroup": { # Deletes a group over the specified range by decrementing the depth of the # Deletes a group over the specified range.
+            # dimensions in the range.
+            #
+            # For example, assume the sheet has a depth-1 group over B:E and a depth-2
+            # group over C:D. Deleting a group over D:E leaves the sheet with a
+            # depth-1 group over B:D and a depth-2 group over C:C.
+          "range": { # A range along a single dimension on a sheet. # The range of the group to be deleted.
               # All indexes are zero-based.
-              # Indexes are half open, e.g the start index is inclusive
-              # and the end index is exclusive -- [start_index, end_index).
+              # Indexes are half open: the start index is inclusive
+              # and the end index is exclusive.
               # Missing indexes indicate the range is unbounded on that side.
-              #
-              # For example, if `"Sheet1"` is sheet ID 0, then:
-              #
-              #   `Sheet1!A1:A1 == sheet_id: 0,
-              #                   start_row_index: 0, end_row_index: 1,
-              #                   start_column_index: 0, end_column_index: 1`
-              #
-              #   `Sheet1!A3:B4 == sheet_id: 0,
-              #                   start_row_index: 2, end_row_index: 4,
-              #                   start_column_index: 0, end_column_index: 2`
-              #
-              #   `Sheet1!A:B == sheet_id: 0,
-              #                 start_column_index: 0, end_column_index: 2`
-              #
-              #   `Sheet1!A5:B == sheet_id: 0,
-              #                  start_row_index: 4,
-              #                  start_column_index: 0, end_column_index: 2`
-              #
-              #   `Sheet1 == sheet_id:0`
-              #
-              # The start index must always be less than or equal to the end index.
-              # If the start index equals the end index, then the range is empty.
-              # Empty ranges are typically not meaningful and are usually rendered in the
-              # UI as `#REF!`.
-            "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-            "sheetId": 42, # The sheet this range is on.
-            "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
+            "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
+            "sheetId": 42, # The sheet this span is on.
+            "dimension": "A String", # The dimension of the span.
           },
-          "searchByRegex": True or False, # True if the find value is a regex.
-              # The regular expression and replacement should follow Java regex rules
-              # at https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html.
-              # The replacement string is allowed to refer to capturing groups.
-              # For example, if one cell has the contents `"Google Sheets"` and another
-              # has `"Google Docs"`, then searching for `"o.* (.*)"` with a replacement of
-              # `"$1 Rocks"` would change the contents of the cells to
-              # `"GSheets Rocks"` and `"GDocs Rocks"` respectively.
-          "sheetId": 42, # The sheet to find/replace over.
-          "replacement": "A String", # The value to use as the replacement.
         },
-        "autoFill": { # Fills in more data based on existing data. # Automatically fills in more data based on existing data.
-          "useAlternateSeries": True or False, # True if we should generate data with the "alternate" series.
-              # This differs based on the type and amount of source data.
-          "sourceAndDestination": { # A combination of a source range and how to extend that source. # The source and destination areas to autofill.
-              # This explicitly lists the source of the autofill and where to
-              # extend that data.
-            "fillLength": 42, # The number of rows or columns that data should be filled into.
-                # Positive numbers expand beyond the last row or last column
-                # of the source.  Negative numbers expand before the first row
-                # or first column of the source.
-            "dimension": "A String", # The dimension that data should be filled into.
-            "source": { # A range on a sheet. # The location of the data to use as the source of the autofill.
-                # All indexes are zero-based.
-                # Indexes are half open, e.g the start index is inclusive
-                # and the end index is exclusive -- [start_index, end_index).
-                # Missing indexes indicate the range is unbounded on that side.
-                #
-                # For example, if `"Sheet1"` is sheet ID 0, then:
-                #
-                #   `Sheet1!A1:A1 == sheet_id: 0,
-                #                   start_row_index: 0, end_row_index: 1,
-                #                   start_column_index: 0, end_column_index: 1`
-                #
-                #   `Sheet1!A3:B4 == sheet_id: 0,
-                #                   start_row_index: 2, end_row_index: 4,
-                #                   start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A:B == sheet_id: 0,
-                #                 start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A5:B == sheet_id: 0,
-                #                  start_row_index: 4,
-                #                  start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1 == sheet_id:0`
-                #
-                # The start index must always be less than or equal to the end index.
-                # If the start index equals the end index, then the range is empty.
-                # Empty ranges are typically not meaningful and are usually rendered in the
-                # UI as `#REF!`.
-              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-              "sheetId": 42, # The sheet this range is on.
-              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-            },
-          },
-          "range": { # A range on a sheet. # The range to autofill. This will examine the range and detect
-              # the location that has data and automatically fill that data
-              # in to the rest of the range.
+        "trimWhitespace": { # Trims the whitespace (such as spaces, tabs, or new lines) in every cell in # Trims cells of whitespace (such as spaces, tabs, or new lines).
+            # the specified range. This request removes all whitespace from the start and
+            # end of each cell's text, and reduces any subsequence of remaining whitespace
+            # characters to a single space. If the resulting trimmed text starts with a '+'
+            # or '=' character, the text remains as a string value and isn't interpreted
+            # as a formula.
+          "range": { # A range on a sheet. # The range whose cells to trim.
               # All indexes are zero-based.
               # Indexes are half open, e.g the start index is inclusive
               # and the end index is exclusive -- [start_index, end_index).
@@ -13311,801 +25692,8 @@
             "sortSpecs": [ # The sort order per column. Later specifications are used when values
                 # are equal in the earlier specifications.
               { # A sort order associated with a specific column or row.
-                "sortOrder": "A String", # The order data should be sorted.
-                "dimensionIndex": 42, # The dimension the sort should be applied to.
-              },
-            ],
-            "criteria": { # The criteria for showing/hiding values per column.
-                # The map's key is the column index, and the value is the criteria for
-                # that column.
-              "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
-                "hiddenValues": [ # Values that should be hidden.
-                  "A String",
-                ],
-                "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
-                    # (This does not override hiddenValues -- if a value is listed there,
-                    #  it will still be hidden.)
-                    # BooleanConditions are used by conditional formatting,
-                    # data validation, and the criteria in filters.
-                  "values": [ # The values of the condition. The number of supported values depends
-                      # on the condition type.  Some support zero values,
-                      # others one or two values,
-                      # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
-                    { # The value of the condition.
-                      "relativeDate": "A String", # A relative date (based on the current date).
-                          # Valid only if the type is
-                          # DATE_BEFORE,
-                          # DATE_AFTER,
-                          # DATE_ON_OR_BEFORE or
-                          # DATE_ON_OR_AFTER.
-                          #
-                          # Relative dates are not supported in data validation.
-                          # They are supported only in conditional formatting and
-                          # conditional filters.
-                      "userEnteredValue": "A String", # A value the condition is based on.
-                          # The value is parsed as if the user typed into a cell.
-                          # Formulas are supported (and must begin with an `=` or a '+').
-                    },
-                  ],
-                  "type": "A String", # The type of condition.
-                },
-              },
-            },
-          },
-        },
-        "updateSpreadsheetProperties": { # Updates properties of a spreadsheet. # Updates the spreadsheet's properties.
-          "fields": "A String", # The fields that should be updated.  At least one field must be specified.
-              # The root 'properties' is implied and should not be specified.
-              # A single `"*"` can be used as short-hand for listing every field.
-          "properties": { # Properties of a spreadsheet. # The properties to update.
-            "title": "A String", # The title of the spreadsheet.
-            "locale": "A String", # The locale of the spreadsheet in one of the following formats:
-                #
-                # * an ISO 639-1 language code such as `en`
-                #
-                # * an ISO 639-2 language code such as `fil`, if no 639-1 code exists
-                #
-                # * a combination of the ISO language code and country code, such as `en_US`
-                #
-                # Note: when updating this field, not all locales/languages are supported.
-            "defaultFormat": { # The format of a cell. # The default format of all cells in the spreadsheet.
-                # CellData.effectiveFormat will not be set if
-                # the cell's format is equal to this default format. This field is read-only.
-              "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
-                "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
-                    # the user's locale will be used if necessary for the given type.
-                    # See the [Date and Number Formats guide](/sheets/api/guides/formats) for
-                    # more information about the supported patterns.
-                "type": "A String", # The type of the number format.
-                    # When writing, this field must be set.
-              },
-              "textDirection": "A String", # The direction of the text in the cell.
-              "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                  # When updating padding, every field must be specified.
-                "top": 42, # The top padding of the cell.
-                "left": 42, # The left padding of the cell.
-                "right": 42, # The right padding of the cell.
-                "bottom": 42, # The bottom padding of the cell.
-              },
-              "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
-              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
-                    #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                    #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-              },
-              "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
-              "borders": { # The borders of the cell. # The borders of the cell.
-                "top": { # A border along a cell. # The top border of the cell.
-                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
-                        #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                        #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                  },
-                  "width": 42, # The width of the border, in pixels.
-                      # Deprecated; the width is determined by the "style" field.
-                  "style": "A String", # The style of the border.
-                },
-                "right": { # A border along a cell. # The right border of the cell.
-                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
-                        #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                        #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                  },
-                  "width": 42, # The width of the border, in pixels.
-                      # Deprecated; the width is determined by the "style" field.
-                  "style": "A String", # The style of the border.
-                },
-                "bottom": { # A border along a cell. # The bottom border of the cell.
-                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
-                        #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                        #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                  },
-                  "width": 42, # The width of the border, in pixels.
-                      # Deprecated; the width is determined by the "style" field.
-                  "style": "A String", # The style of the border.
-                },
-                "left": { # A border along a cell. # The left border of the cell.
-                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
-                        #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                        #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                  },
-                  "width": 42, # The width of the border, in pixels.
-                      # Deprecated; the width is determined by the "style" field.
-                  "style": "A String", # The style of the border.
-                },
-              },
-              "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
-                "angle": 42, # The angle between the standard orientation and the desired orientation.
-                    # Measured in degrees. Valid values are between -90 and 90. Positive
-                    # angles are angled upwards, negative are angled downwards.
-                    #
-                    # Note: For LTR text direction positive angles are in the
-                    # counterclockwise direction, whereas for RTL they are in the clockwise
-                    # direction
-                "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
-                    # characters is unchanged.
-                    # For example:
-                    #
-                    #     | V |
-                    #     | e |
-                    #     | r |
-                    #     | t |
-                    #     | i |
-                    #     | c |
-                    #     | a |
-                    #     | l |
-              },
-              "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
-              "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
-                  # Absent values indicate that the field isn't specified.
-                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to sort by; cells with this foreground color are
+                    # sorted to the top. Mutually exclusive with background_color.
                     # for simplicity of conversion to/from color representations in various
                     # languages over compactness; for example, the fields of this representation
                     # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -14175,14 +25763,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -14212,11 +25800,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -14239,28 +25827,2204 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
-                "bold": True or False, # True if the text is bold.
-                "strikethrough": True or False, # True if the text has a strikethrough.
-                "fontFamily": "A String", # The font family.
-                "fontSize": 42, # The size of the font.
-                "italic": True or False, # True if the text is italicized.
-                "underline": True or False, # True if the text is underlined.
+                "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to sort by; cells with this fill color are sorted
+                    # to the top. Mutually exclusive with foreground_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "foregroundColorStyle": { # A color value. # The foreground color to sort by; cells with this foreground color are
+                    # sorted to the top. Mutually exclusive with background_color, and must
+                    # be an RGB-type color. If foreground_color is also set, this field takes
+                    # precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "backgroundColorStyle": { # A color value. # The background fill color to sort by; cells with this fill color are sorted
+                    # to the top. Mutually exclusive with foreground_color, and must be an
+                    # RGB-type color. If background_color is also set, this field takes
+                    # precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "sortOrder": "A String", # The order data should be sorted.
+                "dimensionIndex": 42, # The dimension the sort should be applied to.
               },
-              "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+            ],
+            "criteria": { # The criteria for showing/hiding values per column.
+                # The map's key is the column index, and the value is the criteria for
+                # that column.
+              "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
+                "visibleBackgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to filter by; only cells with this fill color are
+                    # shown. Mutually exclusive with visible_foreground_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "hiddenValues": [ # Values that should be hidden.
+                  "A String",
+                ],
+                "visibleBackgroundColorStyle": { # A color value. # The background fill color to filter by; only cells with this fill color are
+                    # shown. This field is mutually exclusive with visible_foreground_color,
+                    # and must be set to an RGB-type color. If visible_background_color is
+                    # also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColorStyle": { # A color value. # The foreground color to filter by; only cells with this foreground color
+                    # are shown. This field is mutually exclusive with
+                    # visible_background_color, and must be set to an RGB-type color. If
+                    # visible_foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to filter by; only cells with this foreground color
+                    # are shown. Mutually exclusive with visible_background_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
+                    # (This does not override hidden_values -- if a value is listed there,
+                    #  it will still be hidden.)
+                    # BooleanConditions are used by conditional formatting,
+                    # data validation, and the criteria in filters.
+                  "values": [ # The values of the condition. The number of supported values depends
+                      # on the condition type.  Some support zero values,
+                      # others one or two values,
+                      # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                    { # The value of the condition.
+                      "relativeDate": "A String", # A relative date (based on the current date).
+                          # Valid only if the type is
+                          # DATE_BEFORE,
+                          # DATE_AFTER,
+                          # DATE_ON_OR_BEFORE or
+                          # DATE_ON_OR_AFTER.
+                          #
+                          # Relative dates are not supported in data validation.
+                          # They are supported only in conditional formatting and
+                          # conditional filters.
+                      "userEnteredValue": "A String", # A value the condition is based on.
+                          # The value is parsed as if the user typed into a cell.
+                          # Formulas are supported (and must begin with an `=` or a '+').
+                    },
+                  ],
+                  "type": "A String", # The type of condition.
+                },
+              },
             },
-            "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
-            "iterativeCalculationSettings": { # Settings to control how circular dependencies are resolved with iterative # Determines whether and how circular references are resolved with iterative
-                # calculation.  Absence of this field means that circular references will
-                # result in calculation errors.
-                # calculation.
-              "convergenceThreshold": 3.14, # When iterative calculation is enabled and successive results differ by
-                  # less than this threshold value, the calculation rounds stop.
-              "maxIterations": 42, # When iterative calculation is enabled, the maximum number of calculation
-                  # rounds to perform.
+          },
+        },
+        "addFilterView": { # Adds a filter view. # Adds a filter view.
+          "filter": { # A filter view. # The filter to add. The filterViewId
+              # field is optional; if one is not set, an id will be randomly generated. (It
+              # is an error to specify the ID of a filter that already exists.)
+            "title": "A String", # The name of the filter view.
+            "namedRangeId": "A String", # The named range this filter view is backed by, if any.
+                #
+                # When writing, only one of range or named_range_id
+                # may be set.
+            "filterViewId": 42, # The ID of the filter view.
+            "range": { # A range on a sheet. # The range this filter view covers.
+                #
+                # When writing, only one of range or named_range_id
+                # may be set.
+                # All indexes are zero-based.
+                # Indexes are half open, e.g the start index is inclusive
+                # and the end index is exclusive -- [start_index, end_index).
+                # Missing indexes indicate the range is unbounded on that side.
+                #
+                # For example, if `"Sheet1"` is sheet ID 0, then:
+                #
+                #   `Sheet1!A1:A1 == sheet_id: 0,
+                #                   start_row_index: 0, end_row_index: 1,
+                #                   start_column_index: 0, end_column_index: 1`
+                #
+                #   `Sheet1!A3:B4 == sheet_id: 0,
+                #                   start_row_index: 2, end_row_index: 4,
+                #                   start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A:B == sheet_id: 0,
+                #                 start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A5:B == sheet_id: 0,
+                #                  start_row_index: 4,
+                #                  start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1 == sheet_id:0`
+                #
+                # The start index must always be less than or equal to the end index.
+                # If the start index equals the end index, then the range is empty.
+                # Empty ranges are typically not meaningful and are usually rendered in the
+                # UI as `#REF!`.
+              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "sheetId": 42, # The sheet this range is on.
+              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
-            "timeZone": "A String", # The time zone of the spreadsheet, in CLDR format such as
-                # `America/New_York`. If the time zone isn't recognized, this may
-                # be a custom time zone such as `GMT-07:00`.
+            "sortSpecs": [ # The sort order per column. Later specifications are used when values
+                # are equal in the earlier specifications.
+              { # A sort order associated with a specific column or row.
+                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to sort by; cells with this foreground color are
+                    # sorted to the top. Mutually exclusive with background_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to sort by; cells with this fill color are sorted
+                    # to the top. Mutually exclusive with foreground_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "foregroundColorStyle": { # A color value. # The foreground color to sort by; cells with this foreground color are
+                    # sorted to the top. Mutually exclusive with background_color, and must
+                    # be an RGB-type color. If foreground_color is also set, this field takes
+                    # precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "backgroundColorStyle": { # A color value. # The background fill color to sort by; cells with this fill color are sorted
+                    # to the top. Mutually exclusive with foreground_color, and must be an
+                    # RGB-type color. If background_color is also set, this field takes
+                    # precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "sortOrder": "A String", # The order data should be sorted.
+                "dimensionIndex": 42, # The dimension the sort should be applied to.
+              },
+            ],
+            "criteria": { # The criteria for showing/hiding values per column.
+                # The map's key is the column index, and the value is the criteria for
+                # that column.
+              "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
+                "visibleBackgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to filter by; only cells with this fill color are
+                    # shown. Mutually exclusive with visible_foreground_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "hiddenValues": [ # Values that should be hidden.
+                  "A String",
+                ],
+                "visibleBackgroundColorStyle": { # A color value. # The background fill color to filter by; only cells with this fill color are
+                    # shown. This field is mutually exclusive with visible_foreground_color,
+                    # and must be set to an RGB-type color. If visible_background_color is
+                    # also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColorStyle": { # A color value. # The foreground color to filter by; only cells with this foreground color
+                    # are shown. This field is mutually exclusive with
+                    # visible_background_color, and must be set to an RGB-type color. If
+                    # visible_foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to filter by; only cells with this foreground color
+                    # are shown. Mutually exclusive with visible_background_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
+                    # (This does not override hidden_values -- if a value is listed there,
+                    #  it will still be hidden.)
+                    # BooleanConditions are used by conditional formatting,
+                    # data validation, and the criteria in filters.
+                  "values": [ # The values of the condition. The number of supported values depends
+                      # on the condition type.  Some support zero values,
+                      # others one or two values,
+                      # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                    { # The value of the condition.
+                      "relativeDate": "A String", # A relative date (based on the current date).
+                          # Valid only if the type is
+                          # DATE_BEFORE,
+                          # DATE_AFTER,
+                          # DATE_ON_OR_BEFORE or
+                          # DATE_ON_OR_AFTER.
+                          #
+                          # Relative dates are not supported in data validation.
+                          # They are supported only in conditional formatting and
+                          # conditional filters.
+                      "userEnteredValue": "A String", # A value the condition is based on.
+                          # The value is parsed as if the user typed into a cell.
+                          # Formulas are supported (and must begin with an `=` or a '+').
+                    },
+                  ],
+                  "type": "A String", # The type of condition.
+                },
+              },
+            },
           },
         },
         "updateCells": { # Updates all cells in a range with new data. # Updates many cells at once.
@@ -14360,15 +28124,15 @@
                             "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                 # (Note that formulaValue is not valid,
                                 #  because the values will be calculated.)
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
+                              "formulaValue": "A String", # Represents a formula.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
@@ -14382,7 +28146,7 @@
                             # If not specified, sorting is alphabetical by this group's values.
                           "buckets": [ # Determines the bucket from which values are chosen to sort.
                               #
-                              # For example, in a pivot table with one row group & two column groups,
+                              # For example, in a pivot table with one row group &amp; two column groups,
                               # the row group can list up to two values. The first value corresponds
                               # to a value within the first column group, and the second value
                               # corresponds to a value in the second column group.  If no values
@@ -14390,15 +28154,15 @@
                               # to the "Grand Total" over the column groups. If a single value is listed,
                               # this would correspond to using the "Total" of that bucket.
                             { # The kinds of value that a cell in a spreadsheet can have.
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
+                              "formulaValue": "A String", # Represents a formula.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
@@ -14411,6 +28175,11 @@
                               # grouping should be sorted by.
                         },
                         "sortOrder": "A String", # The order the values in this group should be sorted.
+                        "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
+                            #
+                            # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                            # means this group refers to column `C`, whereas the offset `1` would
+                            # refer to column `D`.
                         "groupRule": { # An optional setting on a PivotGroup that defines buckets for the values # The group rule to apply to this row/column group.
                             # in the source data column rather than breaking out each individual value.
                             # Only one PivotGroup with a group rule may be added for each column in
@@ -14443,10 +28212,10 @@
                               #     +-------------+-------------------+
                               #     | Grouped Age | AVERAGE of Amount |
                               #     +-------------+-------------------+
-                              #     | < 25        |            $19.34 |
+                              #     | &lt; 25        |            $19.34 |
                               #     | 25-45       |            $31.43 |
                               #     | 45-65       |            $35.87 |
-                              #     | > 65        |            $27.55 |
+                              #     | &gt; 65        |            $27.55 |
                               #     +-------------+-------------------+
                               #     | Grand Total |            $29.12 |
                               #     +-------------+-------------------+
@@ -14493,15 +28262,15 @@
                                     # group within a given ManualRule. Items that do not appear in any
                                     # group will appear on their own.
                                   { # The kinds of value that a cell in a spreadsheet can have.
-                                    "numberValue": 3.14, # Represents a double value.
-                                        # Note: Dates, Times and DateTimes are represented as doubles in
-                                        # "serial number" format.
-                                    "boolValue": True or False, # Represents a boolean value.
-                                    "formulaValue": "A String", # Represents a formula.
                                     "stringValue": "A String", # Represents a string value.
                                         # Leading single quotes are not included. For example, if the user typed
                                         # `'123` into the UI, this would be represented as a `stringValue` of
                                         # `"123"`.
+                                    "boolValue": True or False, # Represents a boolean value.
+                                    "numberValue": 3.14, # Represents a double value.
+                                        # Note: Dates, Times and DateTimes are represented as doubles in
+                                        # "serial number" format.
+                                    "formulaValue": "A String", # Represents a formula.
                                     "errorValue": { # An error in a cell. # Represents an error.
                                         # This field is read-only.
                                       "message": "A String", # A message with more information about the error
@@ -14512,15 +28281,15 @@
                                 ],
                                 "groupName": { # The kinds of value that a cell in a spreadsheet can have. # The group name, which must be a string. Each group in a given
                                     # ManualRule must have a unique group name.
-                                  "numberValue": 3.14, # Represents a double value.
-                                      # Note: Dates, Times and DateTimes are represented as doubles in
-                                      # "serial number" format.
-                                  "boolValue": True or False, # Represents a boolean value.
-                                  "formulaValue": "A String", # Represents a formula.
                                   "stringValue": "A String", # Represents a string value.
                                       # Leading single quotes are not included. For example, if the user typed
                                       # `'123` into the UI, this would be represented as a `stringValue` of
                                       # `"123"`.
+                                  "boolValue": True or False, # Represents a boolean value.
+                                  "numberValue": 3.14, # Represents a double value.
+                                      # Note: Dates, Times and DateTimes are represented as doubles in
+                                      # "serial number" format.
+                                  "formulaValue": "A String", # Represents a formula.
                                   "errorValue": { # An error in a cell. # Represents an error.
                                       # This field is read-only.
                                     "message": "A String", # A message with more information about the error
@@ -14557,11 +28326,6 @@
                             "type": "A String", # The type of date-time grouping to apply.
                           },
                         },
-                        "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
-                            #
-                            # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                            # means this group refers to column `C`, whereas the offset `1` would refer
-                            # to column `D`.
                       },
                     ],
                     "source": { # A range on a sheet. # The range the pivot table is reading data from.
@@ -14603,18 +28367,18 @@
                       { # The definition of how a value in a pivot table should be calculated.
                         "formula": "A String", # A custom formula to calculate the value.  The formula must start
                             # with an `=` character.
-                        "name": "A String", # A name to use for the value.
-                        "sourceColumnOffset": 42, # The column offset of the source range that this value reads from.
-                            #
-                            # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                            # means this value refers to column `C`, whereas the offset `1` would
-                            # refer to column `D`.
                         "summarizeFunction": "A String", # A function to summarize the value.
                             # If formula is set, the only supported values are
                             # SUM and
                             # CUSTOM.
                             # If sourceColumnOffset is set, then `CUSTOM`
                             # is not supported.
+                        "name": "A String", # A name to use for the value.
+                        "sourceColumnOffset": 42, # The column offset of the source range that this value reads from.
+                            #
+                            # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                            # means this value refers to column `C`, whereas the offset `1` would
+                            # refer to column `D`.
                         "calculatedDisplayType": "A String", # If specified, indicates that pivot values should be displayed as
                             # the result of a calculation with another pivot value. For example, if
                             # calculated_display_type is specified as PERCENT_OF_GRAND_TOTAL, all the
@@ -14680,15 +28444,15 @@
                             "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                 # (Note that formulaValue is not valid,
                                 #  because the values will be calculated.)
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
+                              "formulaValue": "A String", # Represents a formula.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
@@ -14702,7 +28466,7 @@
                             # If not specified, sorting is alphabetical by this group's values.
                           "buckets": [ # Determines the bucket from which values are chosen to sort.
                               #
-                              # For example, in a pivot table with one row group & two column groups,
+                              # For example, in a pivot table with one row group &amp; two column groups,
                               # the row group can list up to two values. The first value corresponds
                               # to a value within the first column group, and the second value
                               # corresponds to a value in the second column group.  If no values
@@ -14710,15 +28474,15 @@
                               # to the "Grand Total" over the column groups. If a single value is listed,
                               # this would correspond to using the "Total" of that bucket.
                             { # The kinds of value that a cell in a spreadsheet can have.
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
+                              "formulaValue": "A String", # Represents a formula.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
@@ -14731,6 +28495,11 @@
                               # grouping should be sorted by.
                         },
                         "sortOrder": "A String", # The order the values in this group should be sorted.
+                        "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
+                            #
+                            # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                            # means this group refers to column `C`, whereas the offset `1` would
+                            # refer to column `D`.
                         "groupRule": { # An optional setting on a PivotGroup that defines buckets for the values # The group rule to apply to this row/column group.
                             # in the source data column rather than breaking out each individual value.
                             # Only one PivotGroup with a group rule may be added for each column in
@@ -14763,10 +28532,10 @@
                               #     +-------------+-------------------+
                               #     | Grouped Age | AVERAGE of Amount |
                               #     +-------------+-------------------+
-                              #     | < 25        |            $19.34 |
+                              #     | &lt; 25        |            $19.34 |
                               #     | 25-45       |            $31.43 |
                               #     | 45-65       |            $35.87 |
-                              #     | > 65        |            $27.55 |
+                              #     | &gt; 65        |            $27.55 |
                               #     +-------------+-------------------+
                               #     | Grand Total |            $29.12 |
                               #     +-------------+-------------------+
@@ -14813,15 +28582,15 @@
                                     # group within a given ManualRule. Items that do not appear in any
                                     # group will appear on their own.
                                   { # The kinds of value that a cell in a spreadsheet can have.
-                                    "numberValue": 3.14, # Represents a double value.
-                                        # Note: Dates, Times and DateTimes are represented as doubles in
-                                        # "serial number" format.
-                                    "boolValue": True or False, # Represents a boolean value.
-                                    "formulaValue": "A String", # Represents a formula.
                                     "stringValue": "A String", # Represents a string value.
                                         # Leading single quotes are not included. For example, if the user typed
                                         # `'123` into the UI, this would be represented as a `stringValue` of
                                         # `"123"`.
+                                    "boolValue": True or False, # Represents a boolean value.
+                                    "numberValue": 3.14, # Represents a double value.
+                                        # Note: Dates, Times and DateTimes are represented as doubles in
+                                        # "serial number" format.
+                                    "formulaValue": "A String", # Represents a formula.
                                     "errorValue": { # An error in a cell. # Represents an error.
                                         # This field is read-only.
                                       "message": "A String", # A message with more information about the error
@@ -14832,15 +28601,15 @@
                                 ],
                                 "groupName": { # The kinds of value that a cell in a spreadsheet can have. # The group name, which must be a string. Each group in a given
                                     # ManualRule must have a unique group name.
-                                  "numberValue": 3.14, # Represents a double value.
-                                      # Note: Dates, Times and DateTimes are represented as doubles in
-                                      # "serial number" format.
-                                  "boolValue": True or False, # Represents a boolean value.
-                                  "formulaValue": "A String", # Represents a formula.
                                   "stringValue": "A String", # Represents a string value.
                                       # Leading single quotes are not included. For example, if the user typed
                                       # `'123` into the UI, this would be represented as a `stringValue` of
                                       # `"123"`.
+                                  "boolValue": True or False, # Represents a boolean value.
+                                  "numberValue": 3.14, # Represents a double value.
+                                      # Note: Dates, Times and DateTimes are represented as doubles in
+                                      # "serial number" format.
+                                  "formulaValue": "A String", # Represents a formula.
                                   "errorValue": { # An error in a cell. # Represents an error.
                                       # This field is read-only.
                                     "message": "A String", # A message with more information about the error
@@ -14877,11 +28646,6 @@
                             "type": "A String", # The type of date-time grouping to apply.
                           },
                         },
-                        "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
-                            #
-                            # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                            # means this group refers to column `C`, whereas the offset `1` would refer
-                            # to column `D`.
                       },
                     ],
                   },
@@ -14893,15 +28657,15 @@
                       # the calculated value.  For cells with literals, this is
                       # the same as the user_entered_value.
                       # This field is read-only.
-                    "numberValue": 3.14, # Represents a double value.
-                        # Note: Dates, Times and DateTimes are represented as doubles in
-                        # "serial number" format.
-                    "boolValue": True or False, # Represents a boolean value.
-                    "formulaValue": "A String", # Represents a formula.
                     "stringValue": "A String", # Represents a string value.
                         # Leading single quotes are not included. For example, if the user typed
                         # `'123` into the UI, this would be represented as a `stringValue` of
                         # `"123"`.
+                    "boolValue": True or False, # Represents a boolean value.
+                    "numberValue": 3.14, # Represents a double value.
+                        # Note: Dates, Times and DateTimes are represented as doubles in
+                        # "serial number" format.
+                    "formulaValue": "A String", # Represents a formula.
                     "errorValue": { # An error in a cell. # Represents an error.
                         # This field is read-only.
                       "message": "A String", # A message with more information about the error
@@ -14915,15 +28679,15 @@
                   "userEnteredValue": { # The kinds of value that a cell in a spreadsheet can have. # The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()`
                       # Note: Dates, Times and DateTimes are represented as doubles in
                       # serial number format.
-                    "numberValue": 3.14, # Represents a double value.
-                        # Note: Dates, Times and DateTimes are represented as doubles in
-                        # "serial number" format.
-                    "boolValue": True or False, # Represents a boolean value.
-                    "formulaValue": "A String", # Represents a formula.
                     "stringValue": "A String", # Represents a string value.
                         # Leading single quotes are not included. For example, if the user typed
                         # `'123` into the UI, this would be represented as a `stringValue` of
                         # `"123"`.
+                    "boolValue": True or False, # Represents a boolean value.
+                    "numberValue": 3.14, # Represents a double value.
+                        # Note: Dates, Times and DateTimes are represented as doubles in
+                        # "serial number" format.
+                    "formulaValue": "A String", # Represents a formula.
                     "errorValue": { # An error in a cell. # Represents an error.
                         # This field is read-only.
                       "message": "A String", # A message with more information about the error
@@ -14938,6 +28702,13 @@
                       # If the effective format is the default format, effective format will
                       # not be written.
                       # This field is read-only.
+                    "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                        # When updating padding, every field must be specified.
+                      "top": 42, # The top padding of the cell.
+                      "left": 42, # The left padding of the cell.
+                      "right": 42, # The right padding of the cell.
+                      "bottom": 42, # The bottom padding of the cell.
+                    },
                     "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                       "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                           # the user's locale will be used if necessary for the given type.
@@ -14947,12 +28718,143 @@
                           # When writing, this field must be set.
                     },
                     "textDirection": "A String", # The direction of the text in the cell.
-                    "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                        # When updating padding, every field must be specified.
-                      "top": 42, # The top padding of the cell.
-                      "left": 42, # The left padding of the cell.
-                      "right": 42, # The right padding of the cell.
-                      "bottom": 42, # The bottom padding of the cell.
+                    "backgroundColorStyle": { # A color value. # The background color of the cell.
+                        # If background_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
                     },
                     "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                     "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -15025,14 +28927,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -15062,11 +28964,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -15162,14 +29064,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -15199,11 +29101,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -15228,284 +29130,144 @@
                         },
                         "width": 42, # The width of the border, in pixels.
                             # Deprecated; the width is determined by the "style" field.
-                        "style": "A String", # The style of the border.
-                      },
-                      "right": { # A border along a cell. # The right border of the cell.
-                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                            # for simplicity of conversion to/from color representations in various
-                            # languages over compactness; for example, the fields of this representation
-                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                            # method in iOS; and, with just a little work, it can be easily formatted into
-                            # a CSS "rgba()" string in JavaScript, as well.
-                            #
-                            # Note: this proto does not carry information about the absolute color space
-                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                            # space.
-                            #
-                            # Example (Java):
-                            #
-                            #      import com.google.type.Color;
-                            #
-                            #      // ...
-                            #      public static java.awt.Color fromProto(Color protocolor) {
-                            #        float alpha = protocolor.hasAlpha()
-                            #            ? protocolor.getAlpha().getValue()
-                            #            : 1.0;
-                            #
-                            #        return new java.awt.Color(
-                            #            protocolor.getRed(),
-                            #            protocolor.getGreen(),
-                            #            protocolor.getBlue(),
-                            #            alpha);
-                            #      }
-                            #
-                            #      public static Color toProto(java.awt.Color color) {
-                            #        float red = (float) color.getRed();
-                            #        float green = (float) color.getGreen();
-                            #        float blue = (float) color.getBlue();
-                            #        float denominator = 255.0;
-                            #        Color.Builder resultBuilder =
-                            #            Color
-                            #                .newBuilder()
-                            #                .setRed(red / denominator)
-                            #                .setGreen(green / denominator)
-                            #                .setBlue(blue / denominator);
-                            #        int alpha = color.getAlpha();
-                            #        if (alpha != 255) {
-                            #          result.setAlpha(
-                            #              FloatValue
-                            #                  .newBuilder()
-                            #                  .setValue(((float) alpha) / denominator)
-                            #                  .build());
-                            #        }
-                            #        return resultBuilder.build();
-                            #      }
-                            #      // ...
-                            #
-                            # Example (iOS / Obj-C):
-                            #
-                            #      // ...
-                            #      static UIColor* fromProto(Color* protocolor) {
-                            #         float red = [protocolor red];
-                            #         float green = [protocolor green];
-                            #         float blue = [protocolor blue];
-                            #         FloatValue* alpha_wrapper = [protocolor alpha];
-                            #         float alpha = 1.0;
-                            #         if (alpha_wrapper != nil) {
-                            #           alpha = [alpha_wrapper value];
-                            #         }
-                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                            #      }
-                            #
-                            #      static Color* toProto(UIColor* color) {
-                            #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                            #            return nil;
-                            #          }
-                            #          Color* result = [[Color alloc] init];
-                            #          [result setRed:red];
-                            #          [result setGreen:green];
-                            #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
-                            #            [result setAlpha:floatWrapperWithValue(alpha)];
-                            #          }
-                            #          [result autorelease];
-                            #          return result;
-                            #     }
-                            #     // ...
-                            #
-                            #  Example (JavaScript):
-                            #
-                            #     // ...
-                            #
-                            #     var protoToCssColor = function(rgb_color) {
-                            #        var redFrac = rgb_color.red || 0.0;
-                            #        var greenFrac = rgb_color.green || 0.0;
-                            #        var blueFrac = rgb_color.blue || 0.0;
-                            #        var red = Math.floor(redFrac * 255);
-                            #        var green = Math.floor(greenFrac * 255);
-                            #        var blue = Math.floor(blueFrac * 255);
-                            #
-                            #        if (!('alpha' in rgb_color)) {
-                            #           return rgbToCssColor_(red, green, blue);
-                            #        }
-                            #
-                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                            #        var rgbParams = [red, green, blue].join(',');
-                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                            #     };
-                            #
-                            #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                            #       var hexString = rgbNumber.toString(16);
-                            #       var missingZeros = 6 - hexString.length;
-                            #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
-                            #          resultBuilder.push('0');
-                            #       }
-                            #       resultBuilder.push(hexString);
-                            #       return resultBuilder.join('');
-                            #     };
-                            #
-                            #     // ...
-                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                              # the final pixel color is defined by the equation:
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
                               #
-                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
                               #
-                              # This means that a value of 1.0 corresponds to a solid color, whereas
-                              # a value of 0.0 corresponds to a completely transparent color. This
-                              # uses a wrapper message rather than a simple float scalar so that it is
-                              # possible to distinguish between a default value and the value being unset.
-                              # If omitted, this color object is to be rendered as a solid color
-                              # (as if the alpha value had been explicitly given with a value of 1.0).
-                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
                         },
-                        "width": 42, # The width of the border, in pixels.
-                            # Deprecated; the width is determined by the "style" field.
-                        "style": "A String", # The style of the border.
-                      },
-                      "bottom": { # A border along a cell. # The bottom border of the cell.
-                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                            # for simplicity of conversion to/from color representations in various
-                            # languages over compactness; for example, the fields of this representation
-                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                            # method in iOS; and, with just a little work, it can be easily formatted into
-                            # a CSS "rgba()" string in JavaScript, as well.
-                            #
-                            # Note: this proto does not carry information about the absolute color space
-                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                            # space.
-                            #
-                            # Example (Java):
-                            #
-                            #      import com.google.type.Color;
-                            #
-                            #      // ...
-                            #      public static java.awt.Color fromProto(Color protocolor) {
-                            #        float alpha = protocolor.hasAlpha()
-                            #            ? protocolor.getAlpha().getValue()
-                            #            : 1.0;
-                            #
-                            #        return new java.awt.Color(
-                            #            protocolor.getRed(),
-                            #            protocolor.getGreen(),
-                            #            protocolor.getBlue(),
-                            #            alpha);
-                            #      }
-                            #
-                            #      public static Color toProto(java.awt.Color color) {
-                            #        float red = (float) color.getRed();
-                            #        float green = (float) color.getGreen();
-                            #        float blue = (float) color.getBlue();
-                            #        float denominator = 255.0;
-                            #        Color.Builder resultBuilder =
-                            #            Color
-                            #                .newBuilder()
-                            #                .setRed(red / denominator)
-                            #                .setGreen(green / denominator)
-                            #                .setBlue(blue / denominator);
-                            #        int alpha = color.getAlpha();
-                            #        if (alpha != 255) {
-                            #          result.setAlpha(
-                            #              FloatValue
-                            #                  .newBuilder()
-                            #                  .setValue(((float) alpha) / denominator)
-                            #                  .build());
-                            #        }
-                            #        return resultBuilder.build();
-                            #      }
-                            #      // ...
-                            #
-                            # Example (iOS / Obj-C):
-                            #
-                            #      // ...
-                            #      static UIColor* fromProto(Color* protocolor) {
-                            #         float red = [protocolor red];
-                            #         float green = [protocolor green];
-                            #         float blue = [protocolor blue];
-                            #         FloatValue* alpha_wrapper = [protocolor alpha];
-                            #         float alpha = 1.0;
-                            #         if (alpha_wrapper != nil) {
-                            #           alpha = [alpha_wrapper value];
-                            #         }
-                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                            #      }
-                            #
-                            #      static Color* toProto(UIColor* color) {
-                            #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                            #            return nil;
-                            #          }
-                            #          Color* result = [[Color alloc] init];
-                            #          [result setRed:red];
-                            #          [result setGreen:green];
-                            #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
-                            #            [result setAlpha:floatWrapperWithValue(alpha)];
-                            #          }
-                            #          [result autorelease];
-                            #          return result;
-                            #     }
-                            #     // ...
-                            #
-                            #  Example (JavaScript):
-                            #
-                            #     // ...
-                            #
-                            #     var protoToCssColor = function(rgb_color) {
-                            #        var redFrac = rgb_color.red || 0.0;
-                            #        var greenFrac = rgb_color.green || 0.0;
-                            #        var blueFrac = rgb_color.blue || 0.0;
-                            #        var red = Math.floor(redFrac * 255);
-                            #        var green = Math.floor(greenFrac * 255);
-                            #        var blue = Math.floor(blueFrac * 255);
-                            #
-                            #        if (!('alpha' in rgb_color)) {
-                            #           return rgbToCssColor_(red, green, blue);
-                            #        }
-                            #
-                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                            #        var rgbParams = [red, green, blue].join(',');
-                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                            #     };
-                            #
-                            #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                            #       var hexString = rgbNumber.toString(16);
-                            #       var missingZeros = 6 - hexString.length;
-                            #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
-                            #          resultBuilder.push('0');
-                            #       }
-                            #       resultBuilder.push(hexString);
-                            #       return resultBuilder.join('');
-                            #     };
-                            #
-                            #     // ...
-                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                              # the final pixel color is defined by the equation:
-                              #
-                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                              #
-                              # This means that a value of 1.0 corresponds to a solid color, whereas
-                              # a value of 0.0 corresponds to a completely transparent color. This
-                              # uses a wrapper message rather than a simple float scalar so that it is
-                              # possible to distinguish between a default value and the value being unset.
-                              # If omitted, this color object is to be rendered as a solid color
-                              # (as if the alpha value had been explicitly given with a value of 1.0).
-                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                        },
-                        "width": 42, # The width of the border, in pixels.
-                            # Deprecated; the width is determined by the "style" field.
                         "style": "A String", # The style of the border.
                       },
                       "left": { # A border along a cell. # The left border of the cell.
@@ -15579,14 +29341,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -15616,11 +29378,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -15645,6 +29407,698 @@
                         },
                         "width": 42, # The width of the border, in pixels.
                             # Deprecated; the width is determined by the "style" field.
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
+                        "style": "A String", # The style of the border.
+                      },
+                      "right": { # A border along a cell. # The right border of the cell.
+                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                        "width": 42, # The width of the border, in pixels.
+                            # Deprecated; the width is determined by the "style" field.
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
+                        "style": "A String", # The style of the border.
+                      },
+                      "bottom": { # A border along a cell. # The bottom border of the cell.
+                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                        "width": 42, # The width of the border, in pixels.
+                            # Deprecated; the width is determined by the "style" field.
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
                         "style": "A String", # The style of the border.
                       },
                     },
@@ -15742,14 +30196,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -15779,11 +30233,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -15807,6 +30261,144 @@
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
                       "bold": True or False, # True if the text is bold.
+                      "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                          # If foreground_color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "strikethrough": True or False, # True if the text has a strikethrough.
                       "fontFamily": "A String", # The font family.
                       "fontSize": 42, # The size of the font.
@@ -15818,6 +30410,13 @@
                   "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell.
                       #
                       # When writing, the new format will be merged with the existing format.
+                    "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                        # When updating padding, every field must be specified.
+                      "top": 42, # The top padding of the cell.
+                      "left": 42, # The left padding of the cell.
+                      "right": 42, # The right padding of the cell.
+                      "bottom": 42, # The bottom padding of the cell.
+                    },
                     "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                       "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                           # the user's locale will be used if necessary for the given type.
@@ -15827,12 +30426,143 @@
                           # When writing, this field must be set.
                     },
                     "textDirection": "A String", # The direction of the text in the cell.
-                    "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                        # When updating padding, every field must be specified.
-                      "top": 42, # The top padding of the cell.
-                      "left": 42, # The left padding of the cell.
-                      "right": 42, # The right padding of the cell.
-                      "bottom": 42, # The bottom padding of the cell.
+                    "backgroundColorStyle": { # A color value. # The background color of the cell.
+                        # If background_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
                     },
                     "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                     "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -15905,14 +30635,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -15942,11 +30672,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -16042,14 +30772,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -16079,11 +30809,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -16108,284 +30838,144 @@
                         },
                         "width": 42, # The width of the border, in pixels.
                             # Deprecated; the width is determined by the "style" field.
-                        "style": "A String", # The style of the border.
-                      },
-                      "right": { # A border along a cell. # The right border of the cell.
-                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                            # for simplicity of conversion to/from color representations in various
-                            # languages over compactness; for example, the fields of this representation
-                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                            # method in iOS; and, with just a little work, it can be easily formatted into
-                            # a CSS "rgba()" string in JavaScript, as well.
-                            #
-                            # Note: this proto does not carry information about the absolute color space
-                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                            # space.
-                            #
-                            # Example (Java):
-                            #
-                            #      import com.google.type.Color;
-                            #
-                            #      // ...
-                            #      public static java.awt.Color fromProto(Color protocolor) {
-                            #        float alpha = protocolor.hasAlpha()
-                            #            ? protocolor.getAlpha().getValue()
-                            #            : 1.0;
-                            #
-                            #        return new java.awt.Color(
-                            #            protocolor.getRed(),
-                            #            protocolor.getGreen(),
-                            #            protocolor.getBlue(),
-                            #            alpha);
-                            #      }
-                            #
-                            #      public static Color toProto(java.awt.Color color) {
-                            #        float red = (float) color.getRed();
-                            #        float green = (float) color.getGreen();
-                            #        float blue = (float) color.getBlue();
-                            #        float denominator = 255.0;
-                            #        Color.Builder resultBuilder =
-                            #            Color
-                            #                .newBuilder()
-                            #                .setRed(red / denominator)
-                            #                .setGreen(green / denominator)
-                            #                .setBlue(blue / denominator);
-                            #        int alpha = color.getAlpha();
-                            #        if (alpha != 255) {
-                            #          result.setAlpha(
-                            #              FloatValue
-                            #                  .newBuilder()
-                            #                  .setValue(((float) alpha) / denominator)
-                            #                  .build());
-                            #        }
-                            #        return resultBuilder.build();
-                            #      }
-                            #      // ...
-                            #
-                            # Example (iOS / Obj-C):
-                            #
-                            #      // ...
-                            #      static UIColor* fromProto(Color* protocolor) {
-                            #         float red = [protocolor red];
-                            #         float green = [protocolor green];
-                            #         float blue = [protocolor blue];
-                            #         FloatValue* alpha_wrapper = [protocolor alpha];
-                            #         float alpha = 1.0;
-                            #         if (alpha_wrapper != nil) {
-                            #           alpha = [alpha_wrapper value];
-                            #         }
-                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                            #      }
-                            #
-                            #      static Color* toProto(UIColor* color) {
-                            #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                            #            return nil;
-                            #          }
-                            #          Color* result = [[Color alloc] init];
-                            #          [result setRed:red];
-                            #          [result setGreen:green];
-                            #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
-                            #            [result setAlpha:floatWrapperWithValue(alpha)];
-                            #          }
-                            #          [result autorelease];
-                            #          return result;
-                            #     }
-                            #     // ...
-                            #
-                            #  Example (JavaScript):
-                            #
-                            #     // ...
-                            #
-                            #     var protoToCssColor = function(rgb_color) {
-                            #        var redFrac = rgb_color.red || 0.0;
-                            #        var greenFrac = rgb_color.green || 0.0;
-                            #        var blueFrac = rgb_color.blue || 0.0;
-                            #        var red = Math.floor(redFrac * 255);
-                            #        var green = Math.floor(greenFrac * 255);
-                            #        var blue = Math.floor(blueFrac * 255);
-                            #
-                            #        if (!('alpha' in rgb_color)) {
-                            #           return rgbToCssColor_(red, green, blue);
-                            #        }
-                            #
-                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                            #        var rgbParams = [red, green, blue].join(',');
-                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                            #     };
-                            #
-                            #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                            #       var hexString = rgbNumber.toString(16);
-                            #       var missingZeros = 6 - hexString.length;
-                            #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
-                            #          resultBuilder.push('0');
-                            #       }
-                            #       resultBuilder.push(hexString);
-                            #       return resultBuilder.join('');
-                            #     };
-                            #
-                            #     // ...
-                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                              # the final pixel color is defined by the equation:
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
                               #
-                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
                               #
-                              # This means that a value of 1.0 corresponds to a solid color, whereas
-                              # a value of 0.0 corresponds to a completely transparent color. This
-                              # uses a wrapper message rather than a simple float scalar so that it is
-                              # possible to distinguish between a default value and the value being unset.
-                              # If omitted, this color object is to be rendered as a solid color
-                              # (as if the alpha value had been explicitly given with a value of 1.0).
-                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
                         },
-                        "width": 42, # The width of the border, in pixels.
-                            # Deprecated; the width is determined by the "style" field.
-                        "style": "A String", # The style of the border.
-                      },
-                      "bottom": { # A border along a cell. # The bottom border of the cell.
-                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                            # for simplicity of conversion to/from color representations in various
-                            # languages over compactness; for example, the fields of this representation
-                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                            # method in iOS; and, with just a little work, it can be easily formatted into
-                            # a CSS "rgba()" string in JavaScript, as well.
-                            #
-                            # Note: this proto does not carry information about the absolute color space
-                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                            # space.
-                            #
-                            # Example (Java):
-                            #
-                            #      import com.google.type.Color;
-                            #
-                            #      // ...
-                            #      public static java.awt.Color fromProto(Color protocolor) {
-                            #        float alpha = protocolor.hasAlpha()
-                            #            ? protocolor.getAlpha().getValue()
-                            #            : 1.0;
-                            #
-                            #        return new java.awt.Color(
-                            #            protocolor.getRed(),
-                            #            protocolor.getGreen(),
-                            #            protocolor.getBlue(),
-                            #            alpha);
-                            #      }
-                            #
-                            #      public static Color toProto(java.awt.Color color) {
-                            #        float red = (float) color.getRed();
-                            #        float green = (float) color.getGreen();
-                            #        float blue = (float) color.getBlue();
-                            #        float denominator = 255.0;
-                            #        Color.Builder resultBuilder =
-                            #            Color
-                            #                .newBuilder()
-                            #                .setRed(red / denominator)
-                            #                .setGreen(green / denominator)
-                            #                .setBlue(blue / denominator);
-                            #        int alpha = color.getAlpha();
-                            #        if (alpha != 255) {
-                            #          result.setAlpha(
-                            #              FloatValue
-                            #                  .newBuilder()
-                            #                  .setValue(((float) alpha) / denominator)
-                            #                  .build());
-                            #        }
-                            #        return resultBuilder.build();
-                            #      }
-                            #      // ...
-                            #
-                            # Example (iOS / Obj-C):
-                            #
-                            #      // ...
-                            #      static UIColor* fromProto(Color* protocolor) {
-                            #         float red = [protocolor red];
-                            #         float green = [protocolor green];
-                            #         float blue = [protocolor blue];
-                            #         FloatValue* alpha_wrapper = [protocolor alpha];
-                            #         float alpha = 1.0;
-                            #         if (alpha_wrapper != nil) {
-                            #           alpha = [alpha_wrapper value];
-                            #         }
-                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                            #      }
-                            #
-                            #      static Color* toProto(UIColor* color) {
-                            #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                            #            return nil;
-                            #          }
-                            #          Color* result = [[Color alloc] init];
-                            #          [result setRed:red];
-                            #          [result setGreen:green];
-                            #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
-                            #            [result setAlpha:floatWrapperWithValue(alpha)];
-                            #          }
-                            #          [result autorelease];
-                            #          return result;
-                            #     }
-                            #     // ...
-                            #
-                            #  Example (JavaScript):
-                            #
-                            #     // ...
-                            #
-                            #     var protoToCssColor = function(rgb_color) {
-                            #        var redFrac = rgb_color.red || 0.0;
-                            #        var greenFrac = rgb_color.green || 0.0;
-                            #        var blueFrac = rgb_color.blue || 0.0;
-                            #        var red = Math.floor(redFrac * 255);
-                            #        var green = Math.floor(greenFrac * 255);
-                            #        var blue = Math.floor(blueFrac * 255);
-                            #
-                            #        if (!('alpha' in rgb_color)) {
-                            #           return rgbToCssColor_(red, green, blue);
-                            #        }
-                            #
-                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                            #        var rgbParams = [red, green, blue].join(',');
-                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                            #     };
-                            #
-                            #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                            #       var hexString = rgbNumber.toString(16);
-                            #       var missingZeros = 6 - hexString.length;
-                            #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
-                            #          resultBuilder.push('0');
-                            #       }
-                            #       resultBuilder.push(hexString);
-                            #       return resultBuilder.join('');
-                            #     };
-                            #
-                            #     // ...
-                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                              # the final pixel color is defined by the equation:
-                              #
-                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                              #
-                              # This means that a value of 1.0 corresponds to a solid color, whereas
-                              # a value of 0.0 corresponds to a completely transparent color. This
-                              # uses a wrapper message rather than a simple float scalar so that it is
-                              # possible to distinguish between a default value and the value being unset.
-                              # If omitted, this color object is to be rendered as a solid color
-                              # (as if the alpha value had been explicitly given with a value of 1.0).
-                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                        },
-                        "width": 42, # The width of the border, in pixels.
-                            # Deprecated; the width is determined by the "style" field.
                         "style": "A String", # The style of the border.
                       },
                       "left": { # A border along a cell. # The left border of the cell.
@@ -16459,14 +31049,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -16496,11 +31086,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -16525,6 +31115,698 @@
                         },
                         "width": 42, # The width of the border, in pixels.
                             # Deprecated; the width is determined by the "style" field.
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
+                        "style": "A String", # The style of the border.
+                      },
+                      "right": { # A border along a cell. # The right border of the cell.
+                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                        "width": 42, # The width of the border, in pixels.
+                            # Deprecated; the width is determined by the "style" field.
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
+                        "style": "A String", # The style of the border.
+                      },
+                      "bottom": { # A border along a cell. # The bottom border of the cell.
+                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                        "width": 42, # The width of the border, in pixels.
+                            # Deprecated; the width is determined by the "style" field.
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
                         "style": "A String", # The style of the border.
                       },
                     },
@@ -16622,14 +31904,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -16659,11 +31941,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -16687,6 +31969,144 @@
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
                       "bold": True or False, # True if the text is bold.
+                      "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                          # If foreground_color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "strikethrough": True or False, # True if the text has a strikethrough.
                       "fontFamily": "A String", # The font family.
                       "fontSize": 42, # The size of the font.
@@ -16813,14 +32233,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -16850,11 +32270,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -16878,6 +32298,144 @@
                           "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                         },
                         "bold": True or False, # True if the text is bold.
+                        "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                            # If foreground_color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
                         "strikethrough": True or False, # True if the text has a strikethrough.
                         "fontFamily": "A String", # The font family.
                         "fontSize": 42, # The size of the font.
@@ -16938,8 +32496,8 @@
         },
         "appendDimension": { # Appends rows or columns to the end of a sheet. # Appends dimensions to the end of a sheet.
           "length": 42, # The number of rows or columns to append.
-          "sheetId": 42, # The sheet to append rows or columns to.
           "dimension": "A String", # Whether rows or columns should be appended.
+          "sheetId": 42, # The sheet to append rows or columns to.
         },
         "updateBanding": { # Updates properties of the supplied banded range. # Updates a banded range
           "fields": "A String", # The fields that should be updated.  At least one field must be specified.
@@ -17066,14 +32624,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -17103,11 +32661,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -17130,12 +32688,12 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first
-                  # row or column will be filled with this color and the colors will
-                  # alternate between first_band_color and second_band_color starting
-                  # from the second row or column. Otherwise, the first row or column will be
-                  # filled with first_band_color and the colors will proceed to alternate
-                  # as they normally would.
+              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would.
                   # for simplicity of conversion to/from color representations in various
                   # languages over compactness; for example, the fields of this representation
                   # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -17205,14 +32763,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -17242,11 +32800,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -17269,142 +32827,426 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
-                  # row or column will be filled with either first_band_color or
+              "footerColorStyle": { # A color value. # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
                   # second_band_color, depending on the color of the previous row or
                   # column.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
+                  # If footer_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
                     #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
                     #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "headerColorStyle": { # A color value. # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would. If header_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "secondBandColorStyle": { # A color value. # The second color that is alternating. (Required)
+                  # If second_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
               },
               "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required)
                   # for simplicity of conversion to/from color representations in various
@@ -17476,14 +33318,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -17513,11 +33355,286 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "firstBandColorStyle": { # A color value. # The first color that is alternating. (Required)
+                  # If first_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
+                  # second_band_color, depending on the color of the previous row or
+                  # column.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -17626,14 +33743,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -17663,11 +33780,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -17690,12 +33807,12 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first
-                  # row or column will be filled with this color and the colors will
-                  # alternate between first_band_color and second_band_color starting
-                  # from the second row or column. Otherwise, the first row or column will be
-                  # filled with first_band_color and the colors will proceed to alternate
-                  # as they normally would.
+              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would.
                   # for simplicity of conversion to/from color representations in various
                   # languages over compactness; for example, the fields of this representation
                   # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -17765,14 +33882,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -17802,11 +33919,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -17829,142 +33946,426 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
-                  # row or column will be filled with either first_band_color or
+              "footerColorStyle": { # A color value. # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
                   # second_band_color, depending on the color of the previous row or
                   # column.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
+                  # If footer_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
                     #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
                     #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "headerColorStyle": { # A color value. # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would. If header_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "secondBandColorStyle": { # A color value. # The second color that is alternating. (Required)
+                  # If second_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
               },
               "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required)
                   # for simplicity of conversion to/from color representations in various
@@ -18036,14 +34437,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -18073,11 +34474,286 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "firstBandColorStyle": { # A color value. # The first color that is alternating. (Required)
+                  # If first_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
+                  # second_band_color, depending on the color of the previous row or
+                  # column.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -18104,6 +34780,91 @@
             "bandedRangeId": 42, # The id of the banded range.
           },
         },
+        "autoFill": { # Fills in more data based on existing data. # Automatically fills in more data based on existing data.
+          "useAlternateSeries": True or False, # True if we should generate data with the "alternate" series.
+              # This differs based on the type and amount of source data.
+          "range": { # A range on a sheet. # The range to autofill. This will examine the range and detect
+              # the location that has data and automatically fill that data
+              # in to the rest of the range.
+              # All indexes are zero-based.
+              # Indexes are half open, e.g the start index is inclusive
+              # and the end index is exclusive -- [start_index, end_index).
+              # Missing indexes indicate the range is unbounded on that side.
+              #
+              # For example, if `"Sheet1"` is sheet ID 0, then:
+              #
+              #   `Sheet1!A1:A1 == sheet_id: 0,
+              #                   start_row_index: 0, end_row_index: 1,
+              #                   start_column_index: 0, end_column_index: 1`
+              #
+              #   `Sheet1!A3:B4 == sheet_id: 0,
+              #                   start_row_index: 2, end_row_index: 4,
+              #                   start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1!A:B == sheet_id: 0,
+              #                 start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1!A5:B == sheet_id: 0,
+              #                  start_row_index: 4,
+              #                  start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1 == sheet_id:0`
+              #
+              # The start index must always be less than or equal to the end index.
+              # If the start index equals the end index, then the range is empty.
+              # Empty ranges are typically not meaningful and are usually rendered in the
+              # UI as `#REF!`.
+            "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "sheetId": 42, # The sheet this range is on.
+            "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+          },
+          "sourceAndDestination": { # A combination of a source range and how to extend that source. # The source and destination areas to autofill.
+              # This explicitly lists the source of the autofill and where to
+              # extend that data.
+            "source": { # A range on a sheet. # The location of the data to use as the source of the autofill.
+                # All indexes are zero-based.
+                # Indexes are half open, e.g the start index is inclusive
+                # and the end index is exclusive -- [start_index, end_index).
+                # Missing indexes indicate the range is unbounded on that side.
+                #
+                # For example, if `"Sheet1"` is sheet ID 0, then:
+                #
+                #   `Sheet1!A1:A1 == sheet_id: 0,
+                #                   start_row_index: 0, end_row_index: 1,
+                #                   start_column_index: 0, end_column_index: 1`
+                #
+                #   `Sheet1!A3:B4 == sheet_id: 0,
+                #                   start_row_index: 2, end_row_index: 4,
+                #                   start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A:B == sheet_id: 0,
+                #                 start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A5:B == sheet_id: 0,
+                #                  start_row_index: 4,
+                #                  start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1 == sheet_id:0`
+                #
+                # The start index must always be less than or equal to the end index.
+                # If the start index equals the end index, then the range is empty.
+                # Empty ranges are typically not meaningful and are usually rendered in the
+                # UI as `#REF!`.
+              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "sheetId": 42, # The sheet this range is on.
+              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            },
+            "dimension": "A String", # The dimension that data should be filled into.
+            "fillLength": 42, # The number of rows or columns that data should be filled into.
+                # Positive numbers expand beyond the last row or last column
+                # of the source.  Negative numbers expand before the first row
+                # or first column of the source.
+          },
+        },
         "autoResizeDimensions": { # Automatically resizes one or more dimensions based on the contents # Automatically resizes one or more dimensions based on the contents
             # of the cells in that dimension.
             # of the cells in that dimension.
@@ -18118,6 +34879,1274 @@
             "dimension": "A String", # The dimension of the span.
           },
         },
+        "deleteDuplicates": { # Removes rows within this range that contain values in the specified columns # Removes rows containing duplicate values in specified columns of a cell
+            # range.
+            # that are duplicates of values in any previous row. Rows with identical values
+            # but different letter cases, formatting, or formulas are considered to be
+            # duplicates.
+            #
+            # This request also removes duplicate rows hidden from view (for example, due
+            # to a filter). When removing duplicates, the first instance of each duplicate
+            # row scanning from the top downwards is kept in the resulting range. Content
+            # outside of the specified range isn't removed, and rows considered duplicates
+            # do not have to be adjacent to each other in the range.
+          "comparisonColumns": [ # The columns in the range to analyze for duplicate values. If no columns are
+              # selected then all columns are analyzed for duplicates.
+            { # A range along a single dimension on a sheet.
+                # All indexes are zero-based.
+                # Indexes are half open: the start index is inclusive
+                # and the end index is exclusive.
+                # Missing indexes indicate the range is unbounded on that side.
+              "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
+              "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
+              "sheetId": 42, # The sheet this span is on.
+              "dimension": "A String", # The dimension of the span.
+            },
+          ],
+          "range": { # A range on a sheet. # The range to remove duplicates rows from.
+              # All indexes are zero-based.
+              # Indexes are half open, e.g the start index is inclusive
+              # and the end index is exclusive -- [start_index, end_index).
+              # Missing indexes indicate the range is unbounded on that side.
+              #
+              # For example, if `"Sheet1"` is sheet ID 0, then:
+              #
+              #   `Sheet1!A1:A1 == sheet_id: 0,
+              #                   start_row_index: 0, end_row_index: 1,
+              #                   start_column_index: 0, end_column_index: 1`
+              #
+              #   `Sheet1!A3:B4 == sheet_id: 0,
+              #                   start_row_index: 2, end_row_index: 4,
+              #                   start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1!A:B == sheet_id: 0,
+              #                 start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1!A5:B == sheet_id: 0,
+              #                  start_row_index: 4,
+              #                  start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1 == sheet_id:0`
+              #
+              # The start index must always be less than or equal to the end index.
+              # If the start index equals the end index, then the range is empty.
+              # Empty ranges are typically not meaningful and are usually rendered in the
+              # UI as `#REF!`.
+            "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "sheetId": 42, # The sheet this range is on.
+            "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+          },
+        },
+        "addSlicer": { # Adds a slicer to a sheet in the spreadsheet. # Adds a slicer.
+          "slicer": { # A slicer in a sheet. # The slicer that should be added to the spreadsheet, including
+              # the position where it should be placed. The slicerId field is optional; if one is not set, an id
+              # will be randomly generated. (It is an error to specify the ID
+              # of a slicer that already exists.)
+            "position": { # The position of an embedded object such as a chart. # The position of the slicer. Note that slicer can be positioned only on
+                # existing sheet. Also, width and height of slicer can be automatically
+                # adjusted to keep it within permitted limits.
+              "newSheet": True or False, # If true, the embedded object is put on a new sheet whose ID
+                  # is chosen for you. Used only when writing.
+              "sheetId": 42, # The sheet this is on. Set only if the embedded object
+                  # is on its own sheet. Must be non-negative.
+              "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid.
+                "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to.
+                    # All indexes are zero-based.
+                  "rowIndex": 42, # The row index of the coordinate.
+                  "columnIndex": 42, # The column index of the coordinate.
+                  "sheetId": 42, # The sheet this coordinate is on.
+                },
+                "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
+                    # from the anchor cell.
+                "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
+                "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
+                    # from the anchor cell.
+                "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
+              },
+            },
+            "spec": { # The specifications of a slicer. # The specification of the slicer.
+              "backgroundColorStyle": { # A color value. # The background color of the slicer.
+                  # If background_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "dataRange": { # A range on a sheet. # The data range of the slicer.
+                  # All indexes are zero-based.
+                  # Indexes are half open, e.g the start index is inclusive
+                  # and the end index is exclusive -- [start_index, end_index).
+                  # Missing indexes indicate the range is unbounded on that side.
+                  #
+                  # For example, if `"Sheet1"` is sheet ID 0, then:
+                  #
+                  #   `Sheet1!A1:A1 == sheet_id: 0,
+                  #                   start_row_index: 0, end_row_index: 1,
+                  #                   start_column_index: 0, end_column_index: 1`
+                  #
+                  #   `Sheet1!A3:B4 == sheet_id: 0,
+                  #                   start_row_index: 2, end_row_index: 4,
+                  #                   start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1!A:B == sheet_id: 0,
+                  #                 start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1!A5:B == sheet_id: 0,
+                  #                  start_row_index: 4,
+                  #                  start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1 == sheet_id:0`
+                  #
+                  # The start index must always be less than or equal to the end index.
+                  # If the start index equals the end index, then the range is empty.
+                  # Empty ranges are typically not meaningful and are usually rendered in the
+                  # UI as `#REF!`.
+                "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "sheetId": 42, # The sheet this range is on.
+                "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              },
+              "title": "A String", # The title of the slicer.
+              "applyToPivotTables": True or False, # True if the filter should apply to pivot tables.
+                  # If not set, default to `True`.
+              "columnIndex": 42, # The column index in the data table on which the filter is applied to.
+              "horizontalAlignment": "A String", # The horizontal alignment of title in the slicer.
+                  # If unspecified, defaults to `LEFT`
+              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the slicer.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "textFormat": { # The format of a run of text in a cell. # The text format of title in the slicer.
+                  # Absent values indicate that the field isn't specified.
+                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "bold": True or False, # True if the text is bold.
+                "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                    # If foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "strikethrough": True or False, # True if the text has a strikethrough.
+                "fontFamily": "A String", # The font family.
+                "fontSize": 42, # The size of the font.
+                "italic": True or False, # True if the text is italicized.
+                "underline": True or False, # True if the text is underlined.
+              },
+              "filterCriteria": { # Criteria for showing/hiding rows in a filter or filter view. # The filtering criteria of the slicer.
+                "visibleBackgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to filter by; only cells with this fill color are
+                    # shown. Mutually exclusive with visible_foreground_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "hiddenValues": [ # Values that should be hidden.
+                  "A String",
+                ],
+                "visibleBackgroundColorStyle": { # A color value. # The background fill color to filter by; only cells with this fill color are
+                    # shown. This field is mutually exclusive with visible_foreground_color,
+                    # and must be set to an RGB-type color. If visible_background_color is
+                    # also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColorStyle": { # A color value. # The foreground color to filter by; only cells with this foreground color
+                    # are shown. This field is mutually exclusive with
+                    # visible_background_color, and must be set to an RGB-type color. If
+                    # visible_foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to filter by; only cells with this foreground color
+                    # are shown. Mutually exclusive with visible_background_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
+                    # (This does not override hidden_values -- if a value is listed there,
+                    #  it will still be hidden.)
+                    # BooleanConditions are used by conditional formatting,
+                    # data validation, and the criteria in filters.
+                  "values": [ # The values of the condition. The number of supported values depends
+                      # on the condition type.  Some support zero values,
+                      # others one or two values,
+                      # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                    { # The value of the condition.
+                      "relativeDate": "A String", # A relative date (based on the current date).
+                          # Valid only if the type is
+                          # DATE_BEFORE,
+                          # DATE_AFTER,
+                          # DATE_ON_OR_BEFORE or
+                          # DATE_ON_OR_AFTER.
+                          #
+                          # Relative dates are not supported in data validation.
+                          # They are supported only in conditional formatting and
+                          # conditional filters.
+                      "userEnteredValue": "A String", # A value the condition is based on.
+                          # The value is parsed as if the user typed into a cell.
+                          # Formulas are supported (and must begin with an `=` or a '+').
+                    },
+                  ],
+                  "type": "A String", # The type of condition.
+                },
+              },
+            },
+            "slicerId": 42, # The ID of the slicer.
+          },
+        },
         "updateDimensionProperties": { # Updates properties of dimensions within the specified range. # Updates dimensions' properties.
           "fields": "A String", # The fields that should be updated.  At least one field must be specified.
               # The root `properties` is implied and should not be specified.
@@ -18161,8 +36190,8 @@
                     "sheetId": 42, # The sheet this span is on.
                     "dimension": "A String", # The dimension of the span.
                   },
-                  "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                   "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+                  "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                 },
                 "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
                     # specified.
@@ -18299,14 +36328,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -18336,11 +36365,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -18363,12 +36392,12 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first
-                  # row or column will be filled with this color and the colors will
-                  # alternate between first_band_color and second_band_color starting
-                  # from the second row or column. Otherwise, the first row or column will be
-                  # filled with first_band_color and the colors will proceed to alternate
-                  # as they normally would.
+              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would.
                   # for simplicity of conversion to/from color representations in various
                   # languages over compactness; for example, the fields of this representation
                   # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -18438,14 +36467,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -18475,11 +36504,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -18502,142 +36531,426 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
-                  # row or column will be filled with either first_band_color or
+              "footerColorStyle": { # A color value. # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
                   # second_band_color, depending on the color of the previous row or
                   # column.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
+                  # If footer_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
                     #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
                     #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "headerColorStyle": { # A color value. # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would. If header_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "secondBandColorStyle": { # A color value. # The second color that is alternating. (Required)
+                  # If second_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
               },
               "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required)
                   # for simplicity of conversion to/from color representations in various
@@ -18709,14 +37022,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -18746,11 +37059,286 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "firstBandColorStyle": { # A color value. # The first color that is alternating. (Required)
+                  # If first_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
+                  # second_band_color, depending on the color of the previous row or
+                  # column.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -18859,14 +37447,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -18896,11 +37484,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -18923,12 +37511,12 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first
-                  # row or column will be filled with this color and the colors will
-                  # alternate between first_band_color and second_band_color starting
-                  # from the second row or column. Otherwise, the first row or column will be
-                  # filled with first_band_color and the colors will proceed to alternate
-                  # as they normally would.
+              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would.
                   # for simplicity of conversion to/from color representations in various
                   # languages over compactness; for example, the fields of this representation
                   # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -18998,14 +37586,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -19035,11 +37623,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -19062,142 +37650,426 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
-                  # row or column will be filled with either first_band_color or
+              "footerColorStyle": { # A color value. # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
                   # second_band_color, depending on the color of the previous row or
                   # column.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
+                  # If footer_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
                     #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
                     #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "headerColorStyle": { # A color value. # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would. If header_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "secondBandColorStyle": { # A color value. # The second color that is alternating. (Required)
+                  # If second_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
               },
               "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required)
                   # for simplicity of conversion to/from color representations in various
@@ -19269,14 +38141,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -19306,11 +38178,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -19333,168 +38205,148 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-            },
-            "bandedRangeId": 42, # The id of the banded range.
-          },
-        },
-        "unmergeCells": { # Unmerges cells in the given range. # Unmerges merged cells.
-          "range": { # A range on a sheet. # The range within which all cells should be unmerged.
-              # If the range spans multiple merges, all will be unmerged.
-              # The range must not partially span any merge.
-              # All indexes are zero-based.
-              # Indexes are half open, e.g the start index is inclusive
-              # and the end index is exclusive -- [start_index, end_index).
-              # Missing indexes indicate the range is unbounded on that side.
-              #
-              # For example, if `"Sheet1"` is sheet ID 0, then:
-              #
-              #   `Sheet1!A1:A1 == sheet_id: 0,
-              #                   start_row_index: 0, end_row_index: 1,
-              #                   start_column_index: 0, end_column_index: 1`
-              #
-              #   `Sheet1!A3:B4 == sheet_id: 0,
-              #                   start_row_index: 2, end_row_index: 4,
-              #                   start_column_index: 0, end_column_index: 2`
-              #
-              #   `Sheet1!A:B == sheet_id: 0,
-              #                 start_column_index: 0, end_column_index: 2`
-              #
-              #   `Sheet1!A5:B == sheet_id: 0,
-              #                  start_row_index: 4,
-              #                  start_column_index: 0, end_column_index: 2`
-              #
-              #   `Sheet1 == sheet_id:0`
-              #
-              # The start index must always be less than or equal to the end index.
-              # If the start index equals the end index, then the range is empty.
-              # Empty ranges are typically not meaningful and are usually rendered in the
-              # UI as `#REF!`.
-            "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-            "sheetId": 42, # The sheet this range is on.
-            "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-          },
-        },
-        "deleteDimensionGroup": { # Deletes a group over the specified range by decrementing the depth of the # Deletes a group over the specified range.
-            # dimensions in the range.
-            #
-            # For example, assume the sheet has a depth-1 group over B:E and a depth-2
-            # group over C:D. Deleting a group over D:E leaves the sheet with a
-            # depth-1 group over B:D and a depth-2 group over C:C.
-          "range": { # A range along a single dimension on a sheet. # The range of the group to be deleted.
-              # All indexes are zero-based.
-              # Indexes are half open: the start index is inclusive
-              # and the end index is exclusive.
-              # Missing indexes indicate the range is unbounded on that side.
-            "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
-            "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
-            "sheetId": 42, # The sheet this span is on.
-            "dimension": "A String", # The dimension of the span.
-          },
-        },
-        "deleteRange": { # Deletes a range of cells, shifting other cells into the deleted area. # Deletes a range of cells from a sheet, shifting the remaining cells.
-          "range": { # A range on a sheet. # The range of cells to delete.
-              # All indexes are zero-based.
-              # Indexes are half open, e.g the start index is inclusive
-              # and the end index is exclusive -- [start_index, end_index).
-              # Missing indexes indicate the range is unbounded on that side.
-              #
-              # For example, if `"Sheet1"` is sheet ID 0, then:
-              #
-              #   `Sheet1!A1:A1 == sheet_id: 0,
-              #                   start_row_index: 0, end_row_index: 1,
-              #                   start_column_index: 0, end_column_index: 1`
-              #
-              #   `Sheet1!A3:B4 == sheet_id: 0,
-              #                   start_row_index: 2, end_row_index: 4,
-              #                   start_column_index: 0, end_column_index: 2`
-              #
-              #   `Sheet1!A:B == sheet_id: 0,
-              #                 start_column_index: 0, end_column_index: 2`
-              #
-              #   `Sheet1!A5:B == sheet_id: 0,
-              #                  start_row_index: 4,
-              #                  start_column_index: 0, end_column_index: 2`
-              #
-              #   `Sheet1 == sheet_id:0`
-              #
-              # The start index must always be less than or equal to the end index.
-              # If the start index equals the end index, then the range is empty.
-              # Empty ranges are typically not meaningful and are usually rendered in the
-              # UI as `#REF!`.
-            "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-            "sheetId": 42, # The sheet this range is on.
-            "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-          },
-          "shiftDimension": "A String", # The dimension from which deleted cells will be replaced with.
-              # If ROWS, existing cells will be shifted upward to
-              # replace the deleted cells. If COLUMNS, existing cells
-              # will be shifted left to replace the deleted cells.
-        },
-        "clearBasicFilter": { # Clears the basic filter, if any exists on the sheet. # Clears the basic filter on a sheet.
-          "sheetId": 42, # The sheet ID on which the basic filter should be cleared.
-        },
-        "addNamedRange": { # Adds a named range to the spreadsheet. # Adds a named range.
-          "namedRange": { # A named range. # The named range to add. The namedRangeId
-              # field is optional; if one is not set, an id will be randomly generated. (It
-              # is an error to specify the ID of a range that already exists.)
-            "namedRangeId": "A String", # The ID of the named range.
-            "range": { # A range on a sheet. # The range this represents.
-                # All indexes are zero-based.
-                # Indexes are half open, e.g the start index is inclusive
-                # and the end index is exclusive -- [start_index, end_index).
-                # Missing indexes indicate the range is unbounded on that side.
-                #
-                # For example, if `"Sheet1"` is sheet ID 0, then:
-                #
-                #   `Sheet1!A1:A1 == sheet_id: 0,
-                #                   start_row_index: 0, end_row_index: 1,
-                #                   start_column_index: 0, end_column_index: 1`
-                #
-                #   `Sheet1!A3:B4 == sheet_id: 0,
-                #                   start_row_index: 2, end_row_index: 4,
-                #                   start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A:B == sheet_id: 0,
-                #                 start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A5:B == sheet_id: 0,
-                #                  start_row_index: 4,
-                #                  start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1 == sheet_id:0`
-                #
-                # The start index must always be less than or equal to the end index.
-                # If the start index equals the end index, then the range is empty.
-                # Empty ranges are typically not meaningful and are usually rendered in the
-                # UI as `#REF!`.
-              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-              "sheetId": 42, # The sheet this range is on.
-              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-            },
-            "name": "A String", # The name of the named range.
-          },
-        },
-        "updateChartSpec": { # Updates a chart's specifications. # Updates a chart's specifications.
-            # (This does not move or resize a chart. To move or resize a chart, use
-            #  UpdateEmbeddedObjectPositionRequest.)
-          "chartId": 42, # The ID of the chart to update.
-          "spec": { # The specifications of a chart. # The specification to apply to the chart.
-            "fontName": "A String", # The name of the font to use by default for all chart text (e.g. title,
-                # axis labels, legend).  If a font is specified for a specific part of the
-                # chart it will override this font name.
-            "altText": "A String", # The alternative text that describes the chart.  This is often used
-                # for accessibility.
-            "subtitle": "A String", # The subtitle of the chart.
-            "subtitleTextFormat": { # The format of a run of text in a cell. # The subtitle text format.
-                # Strikethrough and underline are not supported.
-                # Absent values indicate that the field isn't specified.
-              "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+              "firstBandColorStyle": { # A color value. # The first color that is alternating. (Required)
+                  # If first_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
+                  # second_band_color, depending on the color of the previous row or
+                  # column.
                   # for simplicity of conversion to/from color representations in various
                   # languages over compactness; for example, the fields of this representation
                   # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -19564,14 +38416,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -19601,11 +38453,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -19628,12 +38480,349 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "bold": True or False, # True if the text is bold.
-              "strikethrough": True or False, # True if the text has a strikethrough.
-              "fontFamily": "A String", # The font family.
-              "fontSize": 42, # The size of the font.
-              "italic": True or False, # True if the text is italicized.
-              "underline": True or False, # True if the text is underlined.
+            },
+            "bandedRangeId": 42, # The id of the banded range.
+          },
+        },
+        "unmergeCells": { # Unmerges cells in the given range. # Unmerges merged cells.
+          "range": { # A range on a sheet. # The range within which all cells should be unmerged.
+              # If the range spans multiple merges, all will be unmerged.
+              # The range must not partially span any merge.
+              # All indexes are zero-based.
+              # Indexes are half open, e.g the start index is inclusive
+              # and the end index is exclusive -- [start_index, end_index).
+              # Missing indexes indicate the range is unbounded on that side.
+              #
+              # For example, if `"Sheet1"` is sheet ID 0, then:
+              #
+              #   `Sheet1!A1:A1 == sheet_id: 0,
+              #                   start_row_index: 0, end_row_index: 1,
+              #                   start_column_index: 0, end_column_index: 1`
+              #
+              #   `Sheet1!A3:B4 == sheet_id: 0,
+              #                   start_row_index: 2, end_row_index: 4,
+              #                   start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1!A:B == sheet_id: 0,
+              #                 start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1!A5:B == sheet_id: 0,
+              #                  start_row_index: 4,
+              #                  start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1 == sheet_id:0`
+              #
+              # The start index must always be less than or equal to the end index.
+              # If the start index equals the end index, then the range is empty.
+              # Empty ranges are typically not meaningful and are usually rendered in the
+              # UI as `#REF!`.
+            "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "sheetId": 42, # The sheet this range is on.
+            "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+          },
+        },
+        "setDataValidation": { # Sets a data validation rule to every cell in the range. # Sets data validation for one or more cells.
+            # To clear validation in a range, call this with no rule specified.
+          "range": { # A range on a sheet. # The range the data validation rule should apply to.
+              # All indexes are zero-based.
+              # Indexes are half open, e.g the start index is inclusive
+              # and the end index is exclusive -- [start_index, end_index).
+              # Missing indexes indicate the range is unbounded on that side.
+              #
+              # For example, if `"Sheet1"` is sheet ID 0, then:
+              #
+              #   `Sheet1!A1:A1 == sheet_id: 0,
+              #                   start_row_index: 0, end_row_index: 1,
+              #                   start_column_index: 0, end_column_index: 1`
+              #
+              #   `Sheet1!A3:B4 == sheet_id: 0,
+              #                   start_row_index: 2, end_row_index: 4,
+              #                   start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1!A:B == sheet_id: 0,
+              #                 start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1!A5:B == sheet_id: 0,
+              #                  start_row_index: 4,
+              #                  start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1 == sheet_id:0`
+              #
+              # The start index must always be less than or equal to the end index.
+              # If the start index equals the end index, then the range is empty.
+              # Empty ranges are typically not meaningful and are usually rendered in the
+              # UI as `#REF!`.
+            "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "sheetId": 42, # The sheet this range is on.
+            "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+          },
+          "rule": { # A data validation rule. # The data validation rule to set on each cell in the range,
+              # or empty to clear the data validation in the range.
+            "showCustomUi": True or False, # True if the UI should be customized based on the kind of condition.
+                # If true, "List" conditions will show a dropdown.
+            "strict": True or False, # True if invalid data should be rejected.
+            "inputMessage": "A String", # A message to show the user when adding data to the cell.
+            "condition": { # A condition that can evaluate to true or false. # The condition that data in the cell must match.
+                # BooleanConditions are used by conditional formatting,
+                # data validation, and the criteria in filters.
+              "values": [ # The values of the condition. The number of supported values depends
+                  # on the condition type.  Some support zero values,
+                  # others one or two values,
+                  # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                { # The value of the condition.
+                  "relativeDate": "A String", # A relative date (based on the current date).
+                      # Valid only if the type is
+                      # DATE_BEFORE,
+                      # DATE_AFTER,
+                      # DATE_ON_OR_BEFORE or
+                      # DATE_ON_OR_AFTER.
+                      #
+                      # Relative dates are not supported in data validation.
+                      # They are supported only in conditional formatting and
+                      # conditional filters.
+                  "userEnteredValue": "A String", # A value the condition is based on.
+                      # The value is parsed as if the user typed into a cell.
+                      # Formulas are supported (and must begin with an `=` or a '+').
+                },
+              ],
+              "type": "A String", # The type of condition.
+            },
+          },
+        },
+        "deleteRange": { # Deletes a range of cells, shifting other cells into the deleted area. # Deletes a range of cells from a sheet, shifting the remaining cells.
+          "range": { # A range on a sheet. # The range of cells to delete.
+              # All indexes are zero-based.
+              # Indexes are half open, e.g the start index is inclusive
+              # and the end index is exclusive -- [start_index, end_index).
+              # Missing indexes indicate the range is unbounded on that side.
+              #
+              # For example, if `"Sheet1"` is sheet ID 0, then:
+              #
+              #   `Sheet1!A1:A1 == sheet_id: 0,
+              #                   start_row_index: 0, end_row_index: 1,
+              #                   start_column_index: 0, end_column_index: 1`
+              #
+              #   `Sheet1!A3:B4 == sheet_id: 0,
+              #                   start_row_index: 2, end_row_index: 4,
+              #                   start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1!A:B == sheet_id: 0,
+              #                 start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1!A5:B == sheet_id: 0,
+              #                  start_row_index: 4,
+              #                  start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1 == sheet_id:0`
+              #
+              # The start index must always be less than or equal to the end index.
+              # If the start index equals the end index, then the range is empty.
+              # Empty ranges are typically not meaningful and are usually rendered in the
+              # UI as `#REF!`.
+            "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "sheetId": 42, # The sheet this range is on.
+            "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+          },
+          "shiftDimension": "A String", # The dimension from which deleted cells will be replaced with.
+              # If ROWS, existing cells will be shifted upward to
+              # replace the deleted cells. If COLUMNS, existing cells
+              # will be shifted left to replace the deleted cells.
+        },
+        "clearBasicFilter": { # Clears the basic filter, if any exists on the sheet. # Clears the basic filter on a sheet.
+          "sheetId": 42, # The sheet ID on which the basic filter should be cleared.
+        },
+        "textToColumns": { # Splits a column of text into multiple columns, # Converts a column of text into many columns of text.
+            # based on a delimiter in each cell.
+          "source": { # A range on a sheet. # The source data range.  This must span exactly one column.
+              # All indexes are zero-based.
+              # Indexes are half open, e.g the start index is inclusive
+              # and the end index is exclusive -- [start_index, end_index).
+              # Missing indexes indicate the range is unbounded on that side.
+              #
+              # For example, if `"Sheet1"` is sheet ID 0, then:
+              #
+              #   `Sheet1!A1:A1 == sheet_id: 0,
+              #                   start_row_index: 0, end_row_index: 1,
+              #                   start_column_index: 0, end_column_index: 1`
+              #
+              #   `Sheet1!A3:B4 == sheet_id: 0,
+              #                   start_row_index: 2, end_row_index: 4,
+              #                   start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1!A:B == sheet_id: 0,
+              #                 start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1!A5:B == sheet_id: 0,
+              #                  start_row_index: 4,
+              #                  start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1 == sheet_id:0`
+              #
+              # The start index must always be less than or equal to the end index.
+              # If the start index equals the end index, then the range is empty.
+              # Empty ranges are typically not meaningful and are usually rendered in the
+              # UI as `#REF!`.
+            "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "sheetId": 42, # The sheet this range is on.
+            "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+          },
+          "delimiter": "A String", # The delimiter to use. Used only if delimiterType is
+              # CUSTOM.
+          "delimiterType": "A String", # The delimiter type to use.
+        },
+        "updateChartSpec": { # Updates a chart's specifications. # Updates a chart's specifications.
+            # (This does not move or resize a chart. To move or resize a chart, use
+            #  UpdateEmbeddedObjectPositionRequest.)
+          "chartId": 42, # The ID of the chart to update.
+          "spec": { # The specifications of a chart. # The specification to apply to the chart.
+            "fontName": "A String", # The name of the font to use by default for all chart text (e.g. title,
+                # axis labels, legend).  If a font is specified for a specific part of the
+                # chart it will override this font name.
+            "altText": "A String", # The alternative text that describes the chart.  This is often used
+                # for accessibility.
+            "subtitle": "A String", # The subtitle of the chart.
+            "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the entire chart.
+                # Not applicable to Org charts.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
             },
             "title": "A String", # The title of the chart.
             "titleTextFormat": { # The format of a run of text in a cell. # The title text format.
@@ -19709,14 +38898,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -19746,11 +38935,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -19774,20 +38963,158 @@
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
               "bold": True or False, # True if the text is bold.
+              "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                  # If foreground_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
               "strikethrough": True or False, # True if the text has a strikethrough.
               "fontFamily": "A String", # The font family.
               "fontSize": 42, # The size of the font.
               "italic": True or False, # True if the text is italicized.
               "underline": True or False, # True if the text is underlined.
             },
-            "treemapChart": { # A <a href="/chart/interactive/docs/gallery/treemap">Treemap chart</a>. # A treemap chart specification.
+            "treemapChart": { # A &lt;a href="/chart/interactive/docs/gallery/treemap"&gt;Treemap chart&lt;/a&gt;. # A treemap chart specification.
               "parentLabels": { # The data included in a domain or series. # The data the contains the treemap cells' parent labels.
                 "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                   "sources": [ # The ranges of data for a series or domain.
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -19839,66 +39166,139 @@
                   ],
                 },
               },
-              "sizeData": { # The data included in a domain or series. # The data that determines the size of each treemap data cell. This data is
-                  # expected to be numeric. The cells corresponding to non-numeric or missing
-                  # data will not be rendered. If color_data is not specified, this data
-                  # is used to determine data cell background colors as well.
-                "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
-                  "sources": [ # The ranges of data for a series or domain.
-                      # Exactly one dimension must have a length of 1,
-                      # and all sources in the list must have the same dimension
-                      # with length 1.
-                      # The domain (if it exists) & all series must have the same number
-                      # of source ranges. If using more than one source range, then the source
-                      # range at a given offset must be in order and contiguous across the domain
-                      # and series.
-                      #
-                      # For example, these are valid configurations:
-                      #
-                      #     domain sources: A1:A5
-                      #     series1 sources: B1:B5
-                      #     series2 sources: D6:D10
-                      #
-                      #     domain sources: A1:A5, C10:C12
-                      #     series1 sources: B1:B5, D10:D12
-                      #     series2 sources: C1:C5, E10:E12
-                    { # A range on a sheet.
-                        # All indexes are zero-based.
-                        # Indexes are half open, e.g the start index is inclusive
-                        # and the end index is exclusive -- [start_index, end_index).
-                        # Missing indexes indicate the range is unbounded on that side.
-                        #
-                        # For example, if `"Sheet1"` is sheet ID 0, then:
-                        #
-                        #   `Sheet1!A1:A1 == sheet_id: 0,
-                        #                   start_row_index: 0, end_row_index: 1,
-                        #                   start_column_index: 0, end_column_index: 1`
-                        #
-                        #   `Sheet1!A3:B4 == sheet_id: 0,
-                        #                   start_row_index: 2, end_row_index: 4,
-                        #                   start_column_index: 0, end_column_index: 2`
-                        #
-                        #   `Sheet1!A:B == sheet_id: 0,
-                        #                 start_column_index: 0, end_column_index: 2`
-                        #
-                        #   `Sheet1!A5:B == sheet_id: 0,
-                        #                  start_row_index: 4,
-                        #                  start_column_index: 0, end_column_index: 2`
-                        #
-                        #   `Sheet1 == sheet_id:0`
-                        #
-                        # The start index must always be less than or equal to the end index.
-                        # If the start index equals the end index, then the range is empty.
-                        # Empty ranges are typically not meaningful and are usually rendered in the
-                        # UI as `#REF!`.
-                      "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-                      "sheetId": 42, # The sheet this range is on.
-                      "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-                    },
-                  ],
-                },
+              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for header cells.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
               "hideTooltips": True or False, # True to hide tooltips.
               "colorScale": { # A color scale for a treemap chart. # The color scale for data cells in the treemap chart. Data cells are
@@ -19917,6 +39317,142 @@
                   # Cells with missing or non-numeric color values will have
                   # noDataColor as their background
                   # color.
+                "maxValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value greater than or equal
+                    # to maxValue. Defaults to #109618 if not
+                    # specified.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
                 "noDataColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells that have no color data associated with
                     # them. Defaults to #000000 if not specified.
                     # for simplicity of conversion to/from color representations in various
@@ -19988,14 +39524,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -20025,11 +39561,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -20052,6 +39588,562 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
+                "midValueColorStyle": { # A color value. # The background color for cells with a color value at the midpoint between
+                    # minValue and
+                    # maxValue. Defaults to #efe6dc if not
+                    # specified.
+                    # If mid_value_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "maxValueColorStyle": { # A color value. # The background color for cells with a color value greater than or equal
+                    # to maxValue. Defaults to #109618 if not
+                    # specified.
+                    # If max_value_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "minValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value less than or equal to
+                    # minValue. Defaults to #dc3912 if not
+                    # specified.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "noDataColorStyle": { # A color value. # The background color for cells that have no color data associated with
+                    # them. Defaults to #000000 if not specified.
+                    # If no_data_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "midValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value at the midpoint between
                     # minValue and
                     # maxValue. Defaults to #efe6dc if not
@@ -20125,14 +40217,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -20162,11 +40254,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -20189,277 +40281,145 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
-                "minValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value less than or equal to
+                "minValueColorStyle": { # A color value. # The background color for cells with a color value less than or equal to
                     # minValue. Defaults to #dc3912 if not
                     # specified.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
+                    # If min_value_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
                       #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
                       #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                },
-                "maxValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value greater than or equal
-                    # to maxValue. Defaults to #109618 if not
-                    # specified.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
+                      # Example (Java):
                       #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #      import com.google.type.Color;
                       #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
                 },
               },
               "labels": { # The data included in a domain or series. # The data that contains the treemap cell labels.
@@ -20468,7 +40428,7 @@
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -20530,7 +40490,7 @@
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -20586,147 +40546,74 @@
                   # have the same color as cells with this value. If not specified, defaults
                   # to the actual maximum value from color_data, or the maximum value from
                   # size_data if color_data is not specified.
+              "levels": 42, # The number of data levels to show on the treemap chart. These levels are
+                  # interactive and are shown with their labels. Defaults to 2 if not
+                  # specified.
               "minValue": 3.14, # The minimum possible data value. Cells with values less than this will
                   # have the same color as cells with this value. If not specified, defaults
                   # to the actual minimum value from color_data, or the minimum value from
                   # size_data if color_data is not specified.
-              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for header cells.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
-                    #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                    #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              "sizeData": { # The data included in a domain or series. # The data that determines the size of each treemap data cell. This data is
+                  # expected to be numeric. The cells corresponding to non-numeric or missing
+                  # data will not be rendered. If color_data is not specified, this data
+                  # is used to determine data cell background colors as well.
+                "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                  "sources": [ # The ranges of data for a series or domain.
+                      # Exactly one dimension must have a length of 1,
+                      # and all sources in the list must have the same dimension
+                      # with length 1.
+                      # The domain (if it exists) &amp; all series must have the same number
+                      # of source ranges. If using more than one source range, then the source
+                      # range at a given offset must be in order and contiguous across the domain
+                      # and series.
+                      #
+                      # For example, these are valid configurations:
+                      #
+                      #     domain sources: A1:A5
+                      #     series1 sources: B1:B5
+                      #     series2 sources: D6:D10
+                      #
+                      #     domain sources: A1:A5, C10:C12
+                      #     series1 sources: B1:B5, D10:D12
+                      #     series2 sources: C1:C5, E10:E12
+                    { # A range on a sheet.
+                        # All indexes are zero-based.
+                        # Indexes are half open, e.g the start index is inclusive
+                        # and the end index is exclusive -- [start_index, end_index).
+                        # Missing indexes indicate the range is unbounded on that side.
+                        #
+                        # For example, if `"Sheet1"` is sheet ID 0, then:
+                        #
+                        #   `Sheet1!A1:A1 == sheet_id: 0,
+                        #                   start_row_index: 0, end_row_index: 1,
+                        #                   start_column_index: 0, end_column_index: 1`
+                        #
+                        #   `Sheet1!A3:B4 == sheet_id: 0,
+                        #                   start_row_index: 2, end_row_index: 4,
+                        #                   start_column_index: 0, end_column_index: 2`
+                        #
+                        #   `Sheet1!A:B == sheet_id: 0,
+                        #                 start_column_index: 0, end_column_index: 2`
+                        #
+                        #   `Sheet1!A5:B == sheet_id: 0,
+                        #                  start_row_index: 4,
+                        #                  start_column_index: 0, end_column_index: 2`
+                        #
+                        #   `Sheet1 == sheet_id:0`
+                        #
+                        # The start index must always be less than or equal to the end index.
+                        # If the start index equals the end index, then the range is empty.
+                        # Empty ranges are typically not meaningful and are usually rendered in the
+                        # UI as `#REF!`.
+                      "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                      "sheetId": 42, # The sheet this range is on.
+                      "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                    },
+                  ],
+                },
               },
-              "levels": 42, # The number of data levels to show on the treemap chart. These levels are
-                  # interactive and are shown with their labels. Defaults to 2 if not
-                  # specified.
               "hintedLevels": 42, # The number of additional data levels beyond the labeled levels to be shown
                   # on the treemap chart. These levels are not interactive and are shown
                   # without their labels. Defaults to 0 if not specified.
@@ -20802,14 +40689,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -20839,11 +40726,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -20867,26 +40754,1706 @@
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
                 "bold": True or False, # True if the text is bold.
+                "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                    # If foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "strikethrough": True or False, # True if the text has a strikethrough.
                 "fontFamily": "A String", # The font family.
                 "fontSize": 42, # The size of the font.
                 "italic": True or False, # True if the text is italicized.
                 "underline": True or False, # True if the text is underlined.
               },
+              "headerColorStyle": { # A color value. # The background color for header cells.
+                  # If header_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+            },
+            "scorecardChart": { # A scorecard chart. Scorecard charts are used to highlight key performance # A scorecard chart specification.
+                # indicators, known as KPIs, on the spreadsheet. A scorecard chart can
+                # represent things like total sales, average cost, or a top selling item. You
+                # can specify a single data value, or aggregate over a range of data.
+                # Percentage or absolute difference from a baseline value can be highlighted,
+                # like changes over time.
+              "numberFormatSource": "A String", # The number format source used in the scorecard chart.
+                  # This field is optional.
+              "customFormatOptions": { # Custom number formatting options for chart attributes. # Custom formatting options for numeric key/baseline values in scorecard
+                  # chart. This field is used only when number_format_source is set to
+                  # CUSTOM. This field is optional.
+                "prefix": "A String", # Custom prefix to be prepended to the chart attribute.
+                    # This field is optional.
+                "suffix": "A String", # Custom suffix to be appended to the chart attribute.
+                    # This field is optional.
+              },
+              "keyValueFormat": { # Formatting options for key value. # Formatting options for key value.
+                "position": { # Position settings for text. # Specifies the horizontal text positioning of key value.
+                    # This field is optional. If not specified, default positioning is used.
+                  "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
+                },
+                "textFormat": { # The format of a run of text in a cell. # Text formatting options for key value.
+                    # Absent values indicate that the field isn't specified.
+                  "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "strikethrough": True or False, # True if the text has a strikethrough.
+                  "fontFamily": "A String", # The font family.
+                  "fontSize": 42, # The size of the font.
+                  "italic": True or False, # True if the text is italicized.
+                  "underline": True or False, # True if the text is underlined.
+                },
+              },
+              "aggregateType": "A String", # The aggregation type for key and baseline chart data in scorecard chart.
+                  # This field is optional.
+              "baselineValueFormat": { # Formatting options for baseline value. # Formatting options for baseline value.
+                  # This field is needed only if baseline_value_data is specified.
+                "description": "A String", # Description which is appended after the baseline value.
+                    # This field is optional.
+                "negativeColor": { # Represents a color in the RGBA color space. This representation is designed # Color to be used, in case baseline value represents a negative change for
+                    # key value. This field is optional.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "comparisonType": "A String", # The comparison type of key value with baseline value.
+                "positiveColorStyle": { # A color value. # Color to be used, in case baseline value represents a positive change for
+                    # key value. This field is optional.
+                    # If positive_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "negativeColorStyle": { # A color value. # Color to be used, in case baseline value represents a negative change for
+                    # key value. This field is optional.
+                    # If negative_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "position": { # Position settings for text. # Specifies the horizontal text positioning of baseline value.
+                    # This field is optional. If not specified, default positioning is used.
+                  "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
+                },
+                "textFormat": { # The format of a run of text in a cell. # Text formatting options for baseline value.
+                    # Absent values indicate that the field isn't specified.
+                  "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "strikethrough": True or False, # True if the text has a strikethrough.
+                  "fontFamily": "A String", # The font family.
+                  "fontSize": 42, # The size of the font.
+                  "italic": True or False, # True if the text is italicized.
+                  "underline": True or False, # True if the text is underlined.
+                },
+                "positiveColor": { # Represents a color in the RGBA color space. This representation is designed # Color to be used, in case baseline value represents a positive change for
+                    # key value. This field is optional.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "keyValueData": { # The data included in a domain or series. # The data for scorecard key value.
+                "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                  "sources": [ # The ranges of data for a series or domain.
+                      # Exactly one dimension must have a length of 1,
+                      # and all sources in the list must have the same dimension
+                      # with length 1.
+                      # The domain (if it exists) &amp; all series must have the same number
+                      # of source ranges. If using more than one source range, then the source
+                      # range at a given offset must be in order and contiguous across the domain
+                      # and series.
+                      #
+                      # For example, these are valid configurations:
+                      #
+                      #     domain sources: A1:A5
+                      #     series1 sources: B1:B5
+                      #     series2 sources: D6:D10
+                      #
+                      #     domain sources: A1:A5, C10:C12
+                      #     series1 sources: B1:B5, D10:D12
+                      #     series2 sources: C1:C5, E10:E12
+                    { # A range on a sheet.
+                        # All indexes are zero-based.
+                        # Indexes are half open, e.g the start index is inclusive
+                        # and the end index is exclusive -- [start_index, end_index).
+                        # Missing indexes indicate the range is unbounded on that side.
+                        #
+                        # For example, if `"Sheet1"` is sheet ID 0, then:
+                        #
+                        #   `Sheet1!A1:A1 == sheet_id: 0,
+                        #                   start_row_index: 0, end_row_index: 1,
+                        #                   start_column_index: 0, end_column_index: 1`
+                        #
+                        #   `Sheet1!A3:B4 == sheet_id: 0,
+                        #                   start_row_index: 2, end_row_index: 4,
+                        #                   start_column_index: 0, end_column_index: 2`
+                        #
+                        #   `Sheet1!A:B == sheet_id: 0,
+                        #                 start_column_index: 0, end_column_index: 2`
+                        #
+                        #   `Sheet1!A5:B == sheet_id: 0,
+                        #                  start_row_index: 4,
+                        #                  start_column_index: 0, end_column_index: 2`
+                        #
+                        #   `Sheet1 == sheet_id:0`
+                        #
+                        # The start index must always be less than or equal to the end index.
+                        # If the start index equals the end index, then the range is empty.
+                        # Empty ranges are typically not meaningful and are usually rendered in the
+                        # UI as `#REF!`.
+                      "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                      "sheetId": 42, # The sheet this range is on.
+                      "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                    },
+                  ],
+                },
+              },
+              "scaleFactor": 3.14, # Value to scale scorecard key and baseline value. For example, a factor of
+                  # 10 can be used to divide all values in the chart by 10.
+                  # This field is optional.
+              "baselineValueData": { # The data included in a domain or series. # The data for scorecard baseline value.
+                  # This field is optional.
+                "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                  "sources": [ # The ranges of data for a series or domain.
+                      # Exactly one dimension must have a length of 1,
+                      # and all sources in the list must have the same dimension
+                      # with length 1.
+                      # The domain (if it exists) &amp; all series must have the same number
+                      # of source ranges. If using more than one source range, then the source
+                      # range at a given offset must be in order and contiguous across the domain
+                      # and series.
+                      #
+                      # For example, these are valid configurations:
+                      #
+                      #     domain sources: A1:A5
+                      #     series1 sources: B1:B5
+                      #     series2 sources: D6:D10
+                      #
+                      #     domain sources: A1:A5, C10:C12
+                      #     series1 sources: B1:B5, D10:D12
+                      #     series2 sources: C1:C5, E10:E12
+                    { # A range on a sheet.
+                        # All indexes are zero-based.
+                        # Indexes are half open, e.g the start index is inclusive
+                        # and the end index is exclusive -- [start_index, end_index).
+                        # Missing indexes indicate the range is unbounded on that side.
+                        #
+                        # For example, if `"Sheet1"` is sheet ID 0, then:
+                        #
+                        #   `Sheet1!A1:A1 == sheet_id: 0,
+                        #                   start_row_index: 0, end_row_index: 1,
+                        #                   start_column_index: 0, end_column_index: 1`
+                        #
+                        #   `Sheet1!A3:B4 == sheet_id: 0,
+                        #                   start_row_index: 2, end_row_index: 4,
+                        #                   start_column_index: 0, end_column_index: 2`
+                        #
+                        #   `Sheet1!A:B == sheet_id: 0,
+                        #                 start_column_index: 0, end_column_index: 2`
+                        #
+                        #   `Sheet1!A5:B == sheet_id: 0,
+                        #                  start_row_index: 4,
+                        #                  start_column_index: 0, end_column_index: 2`
+                        #
+                        #   `Sheet1 == sheet_id:0`
+                        #
+                        # The start index must always be less than or equal to the end index.
+                        # If the start index equals the end index, then the range is empty.
+                        # Empty ranges are typically not meaningful and are usually rendered in the
+                        # UI as `#REF!`.
+                      "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                      "sheetId": 42, # The sheet this range is on.
+                      "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                    },
+                  ],
+                },
+              },
             },
             "titleTextPosition": { # Position settings for text. # The title text position.
                 # This field is optional.
               "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
             },
+            "backgroundColorStyle": { # A color value. # The background color of the entire chart.
+                # Not applicable to Org charts.
+                # If background_color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
             "hiddenDimensionStrategy": "A String", # Determines how the charts will use hidden rows or columns.
-            "pieChart": { # A <a href="/chart/interactive/docs/gallery/piechart">pie chart</a>. # A pie chart specification.
+            "pieChart": { # A &lt;a href="/chart/interactive/docs/gallery/piechart"&gt;pie chart&lt;/a&gt;. # A pie chart specification.
               "series": { # The data included in a domain or series. # The data that covers the one and only series of the pie chart.
                 "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                   "sources": [ # The ranges of data for a series or domain.
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -20944,7 +42511,7 @@
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -21000,8 +42567,8 @@
               "legendPosition": "A String", # Where the legend of the pie chart should be drawn.
               "pieHole": 3.14, # The size of the hole in the pie chart.
             },
-            "candlestickChart": { # A <a href="/chart/interactive/docs/gallery/candlestickchart">candlestick # A candlestick chart specification.
-                # chart</a>.
+            "candlestickChart": { # A &lt;a href="/chart/interactive/docs/gallery/candlestickchart"&gt;candlestick # A candlestick chart specification.
+                # chart&lt;/a&gt;.
               "domain": { # The domain of a CandlestickChart. # The domain data (horizontal axis) for the candlestick chart.  String data
                   # will be treated as discrete labels, other data will be treated as
                   # continuous values.
@@ -21012,7 +42579,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -21077,7 +42644,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -21138,7 +42705,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -21200,7 +42767,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -21262,7 +42829,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -21322,140 +42889,287 @@
                 # This field is optional.
               "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
             },
-            "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the entire chart.
-                # Not applicable to Org charts.
-                # for simplicity of conversion to/from color representations in various
-                # languages over compactness; for example, the fields of this representation
-                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                # method in iOS; and, with just a little work, it can be easily formatted into
-                # a CSS "rgba()" string in JavaScript, as well.
-                #
-                # Note: this proto does not carry information about the absolute color space
-                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                # space.
-                #
-                # Example (Java):
-                #
-                #      import com.google.type.Color;
-                #
-                #      // ...
-                #      public static java.awt.Color fromProto(Color protocolor) {
-                #        float alpha = protocolor.hasAlpha()
-                #            ? protocolor.getAlpha().getValue()
-                #            : 1.0;
-                #
-                #        return new java.awt.Color(
-                #            protocolor.getRed(),
-                #            protocolor.getGreen(),
-                #            protocolor.getBlue(),
-                #            alpha);
-                #      }
-                #
-                #      public static Color toProto(java.awt.Color color) {
-                #        float red = (float) color.getRed();
-                #        float green = (float) color.getGreen();
-                #        float blue = (float) color.getBlue();
-                #        float denominator = 255.0;
-                #        Color.Builder resultBuilder =
-                #            Color
-                #                .newBuilder()
-                #                .setRed(red / denominator)
-                #                .setGreen(green / denominator)
-                #                .setBlue(blue / denominator);
-                #        int alpha = color.getAlpha();
-                #        if (alpha != 255) {
-                #          result.setAlpha(
-                #              FloatValue
-                #                  .newBuilder()
-                #                  .setValue(((float) alpha) / denominator)
-                #                  .build());
-                #        }
-                #        return resultBuilder.build();
-                #      }
-                #      // ...
-                #
-                # Example (iOS / Obj-C):
-                #
-                #      // ...
-                #      static UIColor* fromProto(Color* protocolor) {
-                #         float red = [protocolor red];
-                #         float green = [protocolor green];
-                #         float blue = [protocolor blue];
-                #         FloatValue* alpha_wrapper = [protocolor alpha];
-                #         float alpha = 1.0;
-                #         if (alpha_wrapper != nil) {
-                #           alpha = [alpha_wrapper value];
-                #         }
-                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                #      }
-                #
-                #      static Color* toProto(UIColor* color) {
-                #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                #            return nil;
-                #          }
-                #          Color* result = [[Color alloc] init];
-                #          [result setRed:red];
-                #          [result setGreen:green];
-                #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
-                #            [result setAlpha:floatWrapperWithValue(alpha)];
-                #          }
-                #          [result autorelease];
-                #          return result;
-                #     }
-                #     // ...
-                #
-                #  Example (JavaScript):
-                #
-                #     // ...
-                #
-                #     var protoToCssColor = function(rgb_color) {
-                #        var redFrac = rgb_color.red || 0.0;
-                #        var greenFrac = rgb_color.green || 0.0;
-                #        var blueFrac = rgb_color.blue || 0.0;
-                #        var red = Math.floor(redFrac * 255);
-                #        var green = Math.floor(greenFrac * 255);
-                #        var blue = Math.floor(blueFrac * 255);
-                #
-                #        if (!('alpha' in rgb_color)) {
-                #           return rgbToCssColor_(red, green, blue);
-                #        }
-                #
-                #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                #        var rgbParams = [red, green, blue].join(',');
-                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                #     };
-                #
-                #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                #       var hexString = rgbNumber.toString(16);
-                #       var missingZeros = 6 - hexString.length;
-                #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
-                #          resultBuilder.push('0');
-                #       }
-                #       resultBuilder.push(hexString);
-                #       return resultBuilder.join('');
-                #     };
-                #
-                #     // ...
-              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                  # the final pixel color is defined by the equation:
+            "subtitleTextFormat": { # The format of a run of text in a cell. # The subtitle text format.
+                # Strikethrough and underline are not supported.
+                # Absent values indicate that the field isn't specified.
+              "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
                   #
-                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
                   #
-                  # This means that a value of 1.0 corresponds to a solid color, whereas
-                  # a value of 0.0 corresponds to a completely transparent color. This
-                  # uses a wrapper message rather than a simple float scalar so that it is
-                  # possible to distinguish between a default value and the value being unset.
-                  # If omitted, this color object is to be rendered as a solid color
-                  # (as if the alpha value had been explicitly given with a value of 1.0).
-              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "bold": True or False, # True if the text is bold.
+              "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                  # If foreground_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "strikethrough": True or False, # True if the text has a strikethrough.
+              "fontFamily": "A String", # The font family.
+              "fontSize": 42, # The size of the font.
+              "italic": True or False, # True if the text is italicized.
+              "underline": True or False, # True if the text is underlined.
             },
             "maximized": True or False, # True to make a chart fill the entire space in which it's rendered with
                 # minimum padding.  False to use the default padding.
@@ -21471,7 +43185,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -21604,14 +43318,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -21641,11 +43355,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -21668,6 +43382,144 @@
                       "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                       "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                     },
+                    "colorStyle": { # A color value. # The color of the column.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
                     "label": "A String", # The label of the column's legend.
                   },
                   "subtotalColumnsStyle": { # Styles for a waterfall chart column. # Styles for all subtotal columns in this series.
@@ -21741,14 +43593,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -21778,11 +43630,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -21805,6 +43657,144 @@
                       "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                       "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                     },
+                    "colorStyle": { # A color value. # The color of the column.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
                     "label": "A String", # The label of the column's legend.
                   },
                   "negativeColumnsStyle": { # Styles for a waterfall chart column. # Styles for all columns in this series with negative values.
@@ -21878,14 +43868,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -21915,11 +43905,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -21942,6 +43932,144 @@
                       "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                       "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                     },
+                    "colorStyle": { # A color value. # The color of the column.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
                     "label": "A String", # The label of the column's legend.
                   },
                   "customSubtotals": [ # Custom subtotal columns appearing in this series. The order in which
@@ -21967,7 +44095,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -22029,6 +44157,8 @@
                 # of charts this supports.
               "stackedType": "A String", # The stacked type for charts that support vertical stacking.
                   # Applies to Area, Bar, Column, Combo, and Stepped Area charts.
+              "compareMode": "A String", # The behavior of tooltips and data highlighting when hovering on data and
+                  # chart area.
               "headerCount": 42, # The number of rows or columns in the data that are "headers".
                   # If not set, Google Sheets will guess how many rows are headers based
                   # on the data.
@@ -22039,8 +44169,147 @@
                 { # A single series of data in a chart.
                     # For example, if charting stock prices over time, multiple series may exist,
                     # one for the "Open Price", "High Price", "Low Price" and "Close Price".
-                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color for elements (i.e. bars, lines, points) associated with this
-                      # series.  If empty, a default color is used.
+                  "colorStyle": { # A color value. # The color for elements (such as bars, lines, and points) associated with
+                      # this series.  If empty, a default color is used.
+                      # If color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color for elements (such as bars, lines, and points) associated with
+                      # this series.  If empty, a default color is used.
                       # for simplicity of conversion to/from color representations in various
                       # languages over compactness; for example, the fields of this representation
                       # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -22110,14 +44379,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -22147,11 +44416,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -22180,7 +44449,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -22239,6 +44508,12 @@
                       # prices.
                       # It is an error to specify an axis that isn't a valid minor axis
                       # for the chart's type.
+                  "type": "A String", # The type of this series. Valid only if the
+                      # chartType is
+                      # COMBO.
+                      # Different types will change the way the series is visualized.
+                      # Only LINE, AREA,
+                      # and COLUMN are supported.
                   "lineStyle": { # Properties that describe the style of a line. # The line style of this series. Valid only if the
                       # chartType is AREA,
                       # LINE, or SCATTER.
@@ -22248,12 +44523,6 @@
                     "width": 42, # The thickness of the line, in px.
                     "type": "A String", # The dash type of the line.
                   },
-                  "type": "A String", # The type of this series. Valid only if the
-                      # chartType is
-                      # COMBO.
-                      # Different types will change the way the series is visualized.
-                      # Only LINE, AREA,
-                      # and COLUMN are supported.
                 },
               ],
               "interpolateNulls": True or False, # If some values in a series are missing, gaps may appear in the chart (e.g,
@@ -22263,8 +44532,8 @@
               "legendPosition": "A String", # The position of the chart legend.
               "lineSmoothing": True or False, # Gets whether all lines should be rendered smooth or straight by default.
                   # Applies to Line charts.
-              "compareMode": "A String", # The behavior of tooltips and data highlighting when hovering on data and
-                  # chart area.
+              "threeDimensional": True or False, # True to make the chart 3D.
+                  # Applies to Bar and Column charts.
               "domains": [ # The domain of data this is charting.
                   # Only a single domain is supported.
                 { # The domain of a chart.
@@ -22277,7 +44546,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -22332,13 +44601,10 @@
                 },
               ],
               "chartType": "A String", # The type of the chart.
-              "threeDimensional": True or False, # True to make the chart 3D.
-                  # Applies to Bar and Column charts.
               "axis": [ # The axis on the chart.
                 { # An axis of the chart.
                     # A chart may not have more than one axis per
                     # axis position.
-                  "position": "A String", # The position of this axis.
                   "format": { # The format of a run of text in a cell. # The format of the title.
                       # Only valid if the axis is not associated with the domain.
                       # Absent values indicate that the field isn't specified.
@@ -22412,14 +44678,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -22449,11 +44715,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -22477,21 +44743,168 @@
                       "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                     },
                     "bold": True or False, # True if the text is bold.
+                    "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                        # If foreground_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
                     "strikethrough": True or False, # True if the text has a strikethrough.
                     "fontFamily": "A String", # The font family.
                     "fontSize": 42, # The size of the font.
                     "italic": True or False, # True if the text is italicized.
                     "underline": True or False, # True if the text is underlined.
                   },
-                  "title": "A String", # The title of this axis. If set, this overrides any title inferred
-                      # from headers of the data.
+                  "position": "A String", # The position of this axis.
+                  "viewWindowOptions": { # The options that define a "view window" for a chart (such as the visible # The view window options for this axis.
+                      # values in an axis).
+                    "viewWindowMin": 3.14, # The minimum numeric value to be shown in this view window. If unset, will
+                        # automatically determine a minimum value that looks good for the data.
+                    "viewWindowMax": 3.14, # The maximum numeric value to be shown in this view window. If unset, will
+                        # automatically determine a maximum value that looks good for the data.
+                    "viewWindowMode": "A String", # The view window's mode.
+                  },
                   "titleTextPosition": { # Position settings for text. # The axis title text position.
                     "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
                   },
+                  "title": "A String", # The title of this axis. If set, this overrides any title inferred
+                      # from headers of the data.
                 },
               ],
             },
-            "histogramChart": { # A <a href="/chart/interactive/docs/gallery/histogram">histogram chart</a>. # A histogram chart specification.
+            "histogramChart": { # A &lt;a href="/chart/interactive/docs/gallery/histogram"&gt;histogram chart&lt;/a&gt;. # A histogram chart specification.
                 # A histogram chart groups data items into bins, displaying each bin as a
                 # column of stacked items.  Histograms are used to display the distribution
                 # of a dataset.  Each column of items represents a range into which those
@@ -22578,14 +44991,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -22615,11 +45028,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -22642,13 +45055,152 @@
                     "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
+                  "barColorStyle": { # A color value. # The color of the column representing this series in each bucket.
+                      # This field is optional.
+                      # If bar_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "data": { # The data included in a domain or series. # The data for this histogram series.
                     "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                       "sources": [ # The ranges of data for a series or domain.
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -22711,141 +45263,9 @@
                   # Cannot be negative.
                   # This field is optional.
             },
-            "bubbleChart": { # A <a href="/chart/interactive/docs/gallery/bubblechart">bubble chart</a>. # A bubble chart specification.
-              "bubbleBorderColor": { # Represents a color in the RGBA color space. This representation is designed # The bubble border color.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
-                    #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                    #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-              },
+            "bubbleChart": { # A &lt;a href="/chart/interactive/docs/gallery/bubblechart"&gt;bubble chart&lt;/a&gt;. # A bubble chart specification.
+              "bubbleOpacity": 3.14, # The opacity of the bubbles between 0 and 1.0.
+                  # 0 is fully transparent and 1 is fully opaque.
               "domain": { # The data included in a domain or series. # The data containing the bubble x-values.  These values locate the bubbles
                   # in the chart horizontally.
                 "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
@@ -22853,7 +45273,7 @@
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -22978,14 +45398,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -23015,11 +45435,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -23043,6 +45463,144 @@
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
                 "bold": True or False, # True if the text is bold.
+                "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                    # If foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "strikethrough": True or False, # True if the text has a strikethrough.
                 "fontFamily": "A String", # The font family.
                 "fontSize": 42, # The size of the font.
@@ -23056,7 +45614,7 @@
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -23108,11 +45666,281 @@
                   ],
                 },
               },
+              "bubbleBorderColorStyle": { # A color value. # The bubble border color.
+                  # If bubble_border_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
               "legendPosition": "A String", # Where the legend of the chart should be drawn.
               "bubbleMaxRadiusSize": 42, # The max radius size of the bubbles, in pixels.
                   # If specified, the field must be a positive value.
-              "bubbleOpacity": 3.14, # The opacity of the bubbles between 0 and 1.0.
-                  # 0 is fully transparent and 1 is fully opaque.
+              "bubbleBorderColor": { # Represents a color in the RGBA color space. This representation is designed # The bubble border color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
               "groupIds": { # The data included in a domain or series. # The data containing the bubble group IDs. All bubbles with the same group
                   # ID are drawn in the same color. If bubble_sizes is specified then
                   # this field must also be specified but may contain blank values.
@@ -23122,7 +45950,7 @@
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -23183,7 +46011,7 @@
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -23241,7 +46069,7 @@
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -23296,7 +46124,7 @@
               "bubbleMinRadiusSize": 42, # The minimum radius size of the bubbles, in pixels.
                   # If specific, the field must be a positive value.
             },
-            "orgChart": { # An <a href="/chart/interactive/docs/gallery/orgchart">org chart</a>. # An org chart specification.
+            "orgChart": { # An &lt;a href="/chart/interactive/docs/gallery/orgchart"&gt;org chart&lt;/a&gt;. # An org chart specification.
                 # Org charts require a unique set of labels in labels and may
                 # optionally include parent_labels and tooltips.
                 # parent_labels contain, for each node, the label identifying the parent
@@ -23315,7 +46143,7 @@
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -23376,7 +46204,7 @@
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -23498,14 +46326,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -23535,11 +46363,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -23569,7 +46397,7 @@
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -23691,14 +46519,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -23728,11 +46556,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -23755,6 +46583,282 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
+              "nodeColorStyle": { # A color value. # The color of the org chart nodes.
+                  # If node_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "selectedNodeColorStyle": { # A color value. # The color of the selected org chart nodes.
+                  # If selected_node_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
               "nodeSize": "A String", # The size of the org chart nodes.
             },
           },
@@ -23798,8 +46902,8 @@
                     "sheetId": 42, # The sheet this span is on.
                     "dimension": "A String", # The dimension of the span.
                   },
-                  "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                   "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+                  "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                 },
                 "metadataValue": "A String", # Limits the selected developer metadata to that which has a matching
                     # DeveloperMetadata.metadata_value.
@@ -23896,8 +47000,8 @@
                 "sheetId": 42, # The sheet this span is on.
                 "dimension": "A String", # The dimension of the span.
               },
-              "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
               "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+              "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
             },
             "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
                 # specified.
@@ -23983,8 +47087,8 @@
                 "sheetId": 42, # The sheet this span is on.
                 "dimension": "A String", # The dimension of the span.
               },
-              "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
               "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+              "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
             },
             "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
                 # specified.
@@ -24033,6 +47137,1245 @@
           },
           "mergeType": "A String", # How the cells should be merged.
         },
+        "updateSlicerSpec": { # Updates a slicer's specifications. # Updates a slicer's specifications.
+            # (This does not move or resize a slicer. To move or resize a slicer use
+            # UpdateEmbeddedObjectPositionRequest.
+          "fields": "A String", # The fields that should be updated.  At least one field must be specified.
+              # The root `SlicerSpec` is implied and should not be specified. A single "*"`
+              # can be used as short-hand for listing every field.
+          "spec": { # The specifications of a slicer. # The specification to apply to the slicer.
+            "backgroundColorStyle": { # A color value. # The background color of the slicer.
+                # If background_color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
+            "dataRange": { # A range on a sheet. # The data range of the slicer.
+                # All indexes are zero-based.
+                # Indexes are half open, e.g the start index is inclusive
+                # and the end index is exclusive -- [start_index, end_index).
+                # Missing indexes indicate the range is unbounded on that side.
+                #
+                # For example, if `"Sheet1"` is sheet ID 0, then:
+                #
+                #   `Sheet1!A1:A1 == sheet_id: 0,
+                #                   start_row_index: 0, end_row_index: 1,
+                #                   start_column_index: 0, end_column_index: 1`
+                #
+                #   `Sheet1!A3:B4 == sheet_id: 0,
+                #                   start_row_index: 2, end_row_index: 4,
+                #                   start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A:B == sheet_id: 0,
+                #                 start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A5:B == sheet_id: 0,
+                #                  start_row_index: 4,
+                #                  start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1 == sheet_id:0`
+                #
+                # The start index must always be less than or equal to the end index.
+                # If the start index equals the end index, then the range is empty.
+                # Empty ranges are typically not meaningful and are usually rendered in the
+                # UI as `#REF!`.
+              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "sheetId": 42, # The sheet this range is on.
+              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            },
+            "title": "A String", # The title of the slicer.
+            "applyToPivotTables": True or False, # True if the filter should apply to pivot tables.
+                # If not set, default to `True`.
+            "columnIndex": 42, # The column index in the data table on which the filter is applied to.
+            "horizontalAlignment": "A String", # The horizontal alignment of title in the slicer.
+                # If unspecified, defaults to `LEFT`
+            "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the slicer.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
+            "textFormat": { # The format of a run of text in a cell. # The text format of title in the slicer.
+                # Absent values indicate that the field isn't specified.
+              "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "bold": True or False, # True if the text is bold.
+              "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                  # If foreground_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "strikethrough": True or False, # True if the text has a strikethrough.
+              "fontFamily": "A String", # The font family.
+              "fontSize": 42, # The size of the font.
+              "italic": True or False, # True if the text is italicized.
+              "underline": True or False, # True if the text is underlined.
+            },
+            "filterCriteria": { # Criteria for showing/hiding rows in a filter or filter view. # The filtering criteria of the slicer.
+              "visibleBackgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to filter by; only cells with this fill color are
+                  # shown. Mutually exclusive with visible_foreground_color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "hiddenValues": [ # Values that should be hidden.
+                "A String",
+              ],
+              "visibleBackgroundColorStyle": { # A color value. # The background fill color to filter by; only cells with this fill color are
+                  # shown. This field is mutually exclusive with visible_foreground_color,
+                  # and must be set to an RGB-type color. If visible_background_color is
+                  # also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "visibleForegroundColorStyle": { # A color value. # The foreground color to filter by; only cells with this foreground color
+                  # are shown. This field is mutually exclusive with
+                  # visible_background_color, and must be set to an RGB-type color. If
+                  # visible_foreground_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "visibleForegroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to filter by; only cells with this foreground color
+                  # are shown. Mutually exclusive with visible_background_color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
+                  # (This does not override hidden_values -- if a value is listed there,
+                  #  it will still be hidden.)
+                  # BooleanConditions are used by conditional formatting,
+                  # data validation, and the criteria in filters.
+                "values": [ # The values of the condition. The number of supported values depends
+                    # on the condition type.  Some support zero values,
+                    # others one or two values,
+                    # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                  { # The value of the condition.
+                    "relativeDate": "A String", # A relative date (based on the current date).
+                        # Valid only if the type is
+                        # DATE_BEFORE,
+                        # DATE_AFTER,
+                        # DATE_ON_OR_BEFORE or
+                        # DATE_ON_OR_AFTER.
+                        #
+                        # Relative dates are not supported in data validation.
+                        # They are supported only in conditional formatting and
+                        # conditional filters.
+                    "userEnteredValue": "A String", # A value the condition is based on.
+                        # The value is parsed as if the user typed into a cell.
+                        # Formulas are supported (and must begin with an `=` or a '+').
+                  },
+                ],
+                "type": "A String", # The type of condition.
+              },
+            },
+          },
+          "slicerId": 42, # The id of the slicer to update.
+        },
+        "findReplace": { # Finds and replaces data in cells over a range, sheet, or all sheets. # Finds and replaces occurrences of some text with other text.
+          "includeFormulas": True or False, # True if the search should include cells with formulas.
+              # False to skip cells with formulas.
+          "matchEntireCell": True or False, # True if the find value should match the entire cell.
+          "allSheets": True or False, # True to find/replace over all sheets.
+          "matchCase": True or False, # True if the search is case sensitive.
+          "sheetId": 42, # The sheet to find/replace over.
+          "range": { # A range on a sheet. # The range to find/replace over.
+              # All indexes are zero-based.
+              # Indexes are half open, e.g the start index is inclusive
+              # and the end index is exclusive -- [start_index, end_index).
+              # Missing indexes indicate the range is unbounded on that side.
+              #
+              # For example, if `"Sheet1"` is sheet ID 0, then:
+              #
+              #   `Sheet1!A1:A1 == sheet_id: 0,
+              #                   start_row_index: 0, end_row_index: 1,
+              #                   start_column_index: 0, end_column_index: 1`
+              #
+              #   `Sheet1!A3:B4 == sheet_id: 0,
+              #                   start_row_index: 2, end_row_index: 4,
+              #                   start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1!A:B == sheet_id: 0,
+              #                 start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1!A5:B == sheet_id: 0,
+              #                  start_row_index: 4,
+              #                  start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1 == sheet_id:0`
+              #
+              # The start index must always be less than or equal to the end index.
+              # If the start index equals the end index, then the range is empty.
+              # Empty ranges are typically not meaningful and are usually rendered in the
+              # UI as `#REF!`.
+            "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "sheetId": 42, # The sheet this range is on.
+            "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+          },
+          "searchByRegex": True or False, # True if the find value is a regex.
+              # The regular expression and replacement should follow Java regex rules
+              # at https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html.
+              # The replacement string is allowed to refer to capturing groups.
+              # For example, if one cell has the contents `"Google Sheets"` and another
+              # has `"Google Docs"`, then searching for `"o.* (.*)"` with a replacement of
+              # `"$1 Rocks"` would change the contents of the cells to
+              # `"GSheets Rocks"` and `"GDocs Rocks"` respectively.
+          "find": "A String", # The value to search.
+          "replacement": "A String", # The value to use as the replacement.
+        },
         "deleteProtectedRange": { # Deletes the protected range with the given ID. # Deletes a protected range.
           "protectedRangeId": 42, # The ID of the protected range to delete.
         },
@@ -24076,6 +48419,112 @@
               # If ROWS, existing cells will be shifted down.
               # If COLUMNS, existing cells will be shifted right.
         },
+        "deleteDeveloperMetadata": { # A request to delete developer metadata. # Deletes developer metadata
+          "dataFilter": { # Filter that describes what data should be selected or returned from a # The data filter describing the criteria used to select which developer
+              # metadata entry to delete.
+              # request.
+            "developerMetadataLookup": { # Selects DeveloperMetadata that matches all of the specified fields.  For # Selects data associated with the developer metadata matching the criteria
+                # described by this DeveloperMetadataLookup.
+                # example, if only a metadata ID is specified this considers the
+                # DeveloperMetadata with that particular unique ID. If a metadata key is
+                # specified, this considers all developer metadata with that key.  If a
+                # key, visibility, and location type are all specified, this considers all
+                # developer metadata with that key and visibility that are associated with a
+                # location of that type.  In general, this
+                # selects all DeveloperMetadata that matches the intersection of all the
+                # specified fields; any field or combination of fields may be specified.
+              "metadataLocation": { # A location where metadata may be associated in a spreadsheet. # Limits the selected developer metadata to those entries associated with
+                  # the specified location.  This field either matches exact locations or all
+                  # intersecting locations according the specified
+                  # locationMatchingStrategy.
+                "locationType": "A String", # The type of location this object represents.  This field is read-only.
+                "dimensionRange": { # A range along a single dimension on a sheet. # Represents the row or column when metadata is associated with
+                    # a dimension. The specified DimensionRange must represent a single row
+                    # or column; it cannot be unbounded or span multiple rows or columns.
+                    # All indexes are zero-based.
+                    # Indexes are half open: the start index is inclusive
+                    # and the end index is exclusive.
+                    # Missing indexes indicate the range is unbounded on that side.
+                  "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
+                  "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
+                  "sheetId": 42, # The sheet this span is on.
+                  "dimension": "A String", # The dimension of the span.
+                },
+                "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+                "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
+              },
+              "metadataValue": "A String", # Limits the selected developer metadata to that which has a matching
+                  # DeveloperMetadata.metadata_value.
+              "locationMatchingStrategy": "A String", # Determines how this lookup matches the location.  If this field is
+                  # specified as EXACT, only developer metadata associated on the exact
+                  # location specified is matched.  If this field is specified to INTERSECTING,
+                  # developer metadata associated on intersecting locations is also
+                  # matched.  If left unspecified, this field assumes a default value of
+                  # INTERSECTING.
+                  # If this field is specified, a metadataLocation
+                  # must also be specified.
+              "locationType": "A String", # Limits the selected developer metadata to those entries which are
+                  # associated with locations of the specified type.  For example, when this
+                  # field is specified as ROW this lookup
+                  # only considers developer metadata associated on rows.  If the field is left
+                  # unspecified, all location types are considered.  This field cannot be
+                  # specified as SPREADSHEET when
+                  # the locationMatchingStrategy
+                  # is specified as INTERSECTING or when the
+                  # metadataLocation is specified as a
+                  # non-spreadsheet location: spreadsheet metadata cannot intersect any other
+                  # developer metadata location.  This field also must be left unspecified when
+                  # the locationMatchingStrategy
+                  # is specified as EXACT.
+              "metadataId": 42, # Limits the selected developer metadata to that which has a matching
+                  # DeveloperMetadata.metadata_id.
+              "visibility": "A String", # Limits the selected developer metadata to that which has a matching
+                  # DeveloperMetadata.visibility.  If left unspecified, all developer
+                  # metadata visibile to the requesting project is considered.
+              "metadataKey": "A String", # Limits the selected developer metadata to that which has a matching
+                  # DeveloperMetadata.metadata_key.
+            },
+            "a1Range": "A String", # Selects data that matches the specified A1 range.
+            "gridRange": { # A range on a sheet. # Selects data that matches the range described by the GridRange.
+                # All indexes are zero-based.
+                # Indexes are half open, e.g the start index is inclusive
+                # and the end index is exclusive -- [start_index, end_index).
+                # Missing indexes indicate the range is unbounded on that side.
+                #
+                # For example, if `"Sheet1"` is sheet ID 0, then:
+                #
+                #   `Sheet1!A1:A1 == sheet_id: 0,
+                #                   start_row_index: 0, end_row_index: 1,
+                #                   start_column_index: 0, end_column_index: 1`
+                #
+                #   `Sheet1!A3:B4 == sheet_id: 0,
+                #                   start_row_index: 2, end_row_index: 4,
+                #                   start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A:B == sheet_id: 0,
+                #                 start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A5:B == sheet_id: 0,
+                #                  start_row_index: 4,
+                #                  start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1 == sheet_id:0`
+                #
+                # The start index must always be less than or equal to the end index.
+                # If the start index equals the end index, then the range is empty.
+                # Empty ranges are typically not meaningful and are usually rendered in the
+                # UI as `#REF!`.
+              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "sheetId": 42, # The sheet this range is on.
+              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            },
+          },
+        },
+        "deleteSheet": { # Deletes the requested sheet. # Deletes a sheet.
+          "sheetId": 42, # The ID of the sheet to delete.
+        },
         "updateBorders": { # Updates the borders of a range. # Updates the borders in a range of cells.
             # If a field is not set in the request, that means the border remains as-is.
             # For example, with two subsequent UpdateBordersRequest:
@@ -24158,14 +48607,14 @@
                 #
                 #      static Color* toProto(UIColor* color) {
                 #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                 #            return nil;
                 #          }
                 #          Color* result = [[Color alloc] init];
                 #          [result setRed:red];
                 #          [result setGreen:green];
                 #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
+                #          if (alpha &lt;= 0.9999) {
                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                 #          }
                 #          [result autorelease];
@@ -24195,11 +48644,11 @@
                 #     };
                 #
                 #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                 #       var hexString = rgbNumber.toString(16);
                 #       var missingZeros = 6 - hexString.length;
                 #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
+                #       for (var i = 0; i &lt; missingZeros; i++) {
                 #          resultBuilder.push('0');
                 #       }
                 #       resultBuilder.push(hexString);
@@ -24224,6 +48673,144 @@
             },
             "width": 42, # The width of the border, in pixels.
                 # Deprecated; the width is determined by the "style" field.
+            "colorStyle": { # A color value. # The color of the border.
+                # If color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
             "style": "A String", # The style of the border.
           },
           "bottom": { # A border along a cell. # The border to put at the bottom of the range.
@@ -24297,14 +48884,14 @@
                 #
                 #      static Color* toProto(UIColor* color) {
                 #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                 #            return nil;
                 #          }
                 #          Color* result = [[Color alloc] init];
                 #          [result setRed:red];
                 #          [result setGreen:green];
                 #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
+                #          if (alpha &lt;= 0.9999) {
                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                 #          }
                 #          [result autorelease];
@@ -24334,11 +48921,11 @@
                 #     };
                 #
                 #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                 #       var hexString = rgbNumber.toString(16);
                 #       var missingZeros = 6 - hexString.length;
                 #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
+                #       for (var i = 0; i &lt; missingZeros; i++) {
                 #          resultBuilder.push('0');
                 #       }
                 #       resultBuilder.push(hexString);
@@ -24363,6 +48950,144 @@
             },
             "width": 42, # The width of the border, in pixels.
                 # Deprecated; the width is determined by the "style" field.
+            "colorStyle": { # A color value. # The color of the border.
+                # If color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
             "style": "A String", # The style of the border.
           },
           "top": { # A border along a cell. # The border to put at the top of the range.
@@ -24436,14 +49161,14 @@
                 #
                 #      static Color* toProto(UIColor* color) {
                 #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                 #            return nil;
                 #          }
                 #          Color* result = [[Color alloc] init];
                 #          [result setRed:red];
                 #          [result setGreen:green];
                 #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
+                #          if (alpha &lt;= 0.9999) {
                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                 #          }
                 #          [result autorelease];
@@ -24473,11 +49198,11 @@
                 #     };
                 #
                 #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                 #       var hexString = rgbNumber.toString(16);
                 #       var missingZeros = 6 - hexString.length;
                 #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
+                #       for (var i = 0; i &lt; missingZeros; i++) {
                 #          resultBuilder.push('0');
                 #       }
                 #       resultBuilder.push(hexString);
@@ -24502,6 +49227,144 @@
             },
             "width": 42, # The width of the border, in pixels.
                 # Deprecated; the width is determined by the "style" field.
+            "colorStyle": { # A color value. # The color of the border.
+                # If color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
             "style": "A String", # The style of the border.
           },
           "innerHorizontal": { # A border along a cell. # The horizontal border to put within the range.
@@ -24575,14 +49438,14 @@
                 #
                 #      static Color* toProto(UIColor* color) {
                 #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                 #            return nil;
                 #          }
                 #          Color* result = [[Color alloc] init];
                 #          [result setRed:red];
                 #          [result setGreen:green];
                 #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
+                #          if (alpha &lt;= 0.9999) {
                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                 #          }
                 #          [result autorelease];
@@ -24612,11 +49475,11 @@
                 #     };
                 #
                 #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                 #       var hexString = rgbNumber.toString(16);
                 #       var missingZeros = 6 - hexString.length;
                 #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
+                #       for (var i = 0; i &lt; missingZeros; i++) {
                 #          resultBuilder.push('0');
                 #       }
                 #       resultBuilder.push(hexString);
@@ -24641,6 +49504,144 @@
             },
             "width": 42, # The width of the border, in pixels.
                 # Deprecated; the width is determined by the "style" field.
+            "colorStyle": { # A color value. # The color of the border.
+                # If color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
             "style": "A String", # The style of the border.
           },
           "range": { # A range on a sheet. # The range whose borders should be updated.
@@ -24749,14 +49750,14 @@
                 #
                 #      static Color* toProto(UIColor* color) {
                 #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                 #            return nil;
                 #          }
                 #          Color* result = [[Color alloc] init];
                 #          [result setRed:red];
                 #          [result setGreen:green];
                 #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
+                #          if (alpha &lt;= 0.9999) {
                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                 #          }
                 #          [result autorelease];
@@ -24786,11 +49787,11 @@
                 #     };
                 #
                 #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                 #       var hexString = rgbNumber.toString(16);
                 #       var missingZeros = 6 - hexString.length;
                 #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
+                #       for (var i = 0; i &lt; missingZeros; i++) {
                 #          resultBuilder.push('0');
                 #       }
                 #       resultBuilder.push(hexString);
@@ -24815,6 +49816,144 @@
             },
             "width": 42, # The width of the border, in pixels.
                 # Deprecated; the width is determined by the "style" field.
+            "colorStyle": { # A color value. # The color of the border.
+                # If color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
             "style": "A String", # The style of the border.
           },
           "left": { # A border along a cell. # The border to put at the left of the range.
@@ -24888,14 +50027,14 @@
                 #
                 #      static Color* toProto(UIColor* color) {
                 #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                 #            return nil;
                 #          }
                 #          Color* result = [[Color alloc] init];
                 #          [result setRed:red];
                 #          [result setGreen:green];
                 #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
+                #          if (alpha &lt;= 0.9999) {
                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                 #          }
                 #          [result autorelease];
@@ -24925,11 +50064,11 @@
                 #     };
                 #
                 #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                 #       var hexString = rgbNumber.toString(16);
                 #       var missingZeros = 6 - hexString.length;
                 #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
+                #       for (var i = 0; i &lt; missingZeros; i++) {
                 #          resultBuilder.push('0');
                 #       }
                 #       resultBuilder.push(hexString);
@@ -24954,113 +50093,145 @@
             },
             "width": 42, # The width of the border, in pixels.
                 # Deprecated; the width is determined by the "style" field.
-            "style": "A String", # The style of the border.
-          },
-        },
-        "deleteSheet": { # Deletes the requested sheet. # Deletes a sheet.
-          "sheetId": 42, # The ID of the sheet to delete.
-        },
-        "deleteDeveloperMetadata": { # A request to delete developer metadata. # Deletes developer metadata
-          "dataFilter": { # Filter that describes what data should be selected or returned from a # The data filter describing the criteria used to select which developer
-              # metadata entry to delete.
-              # request.
-            "developerMetadataLookup": { # Selects DeveloperMetadata that matches all of the specified fields.  For # Selects data associated with the developer metadata matching the criteria
-                # described by this DeveloperMetadataLookup.
-                # example, if only a metadata ID is specified this considers the
-                # DeveloperMetadata with that particular unique ID. If a metadata key is
-                # specified, this considers all developer metadata with that key.  If a
-                # key, visibility, and location type are all specified, this considers all
-                # developer metadata with that key and visibility that are associated with a
-                # location of that type.  In general, this
-                # selects all DeveloperMetadata that matches the intersection of all the
-                # specified fields; any field or combination of fields may be specified.
-              "metadataLocation": { # A location where metadata may be associated in a spreadsheet. # Limits the selected developer metadata to those entries associated with
-                  # the specified location.  This field either matches exact locations or all
-                  # intersecting locations according the specified
-                  # locationMatchingStrategy.
-                "locationType": "A String", # The type of location this object represents.  This field is read-only.
-                "dimensionRange": { # A range along a single dimension on a sheet. # Represents the row or column when metadata is associated with
-                    # a dimension. The specified DimensionRange must represent a single row
-                    # or column; it cannot be unbounded or span multiple rows or columns.
-                    # All indexes are zero-based.
-                    # Indexes are half open: the start index is inclusive
-                    # and the end index is exclusive.
-                    # Missing indexes indicate the range is unbounded on that side.
-                  "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
-                  "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
-                  "sheetId": 42, # The sheet this span is on.
-                  "dimension": "A String", # The dimension of the span.
-                },
-                "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
-                "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+            "colorStyle": { # A color value. # The color of the border.
+                # If color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "metadataValue": "A String", # Limits the selected developer metadata to that which has a matching
-                  # DeveloperMetadata.metadata_value.
-              "locationMatchingStrategy": "A String", # Determines how this lookup matches the location.  If this field is
-                  # specified as EXACT, only developer metadata associated on the exact
-                  # location specified is matched.  If this field is specified to INTERSECTING,
-                  # developer metadata associated on intersecting locations is also
-                  # matched.  If left unspecified, this field assumes a default value of
-                  # INTERSECTING.
-                  # If this field is specified, a metadataLocation
-                  # must also be specified.
-              "locationType": "A String", # Limits the selected developer metadata to those entries which are
-                  # associated with locations of the specified type.  For example, when this
-                  # field is specified as ROW this lookup
-                  # only considers developer metadata associated on rows.  If the field is left
-                  # unspecified, all location types are considered.  This field cannot be
-                  # specified as SPREADSHEET when
-                  # the locationMatchingStrategy
-                  # is specified as INTERSECTING or when the
-                  # metadataLocation is specified as a
-                  # non-spreadsheet location: spreadsheet metadata cannot intersect any other
-                  # developer metadata location.  This field also must be left unspecified when
-                  # the locationMatchingStrategy
-                  # is specified as EXACT.
-              "metadataId": 42, # Limits the selected developer metadata to that which has a matching
-                  # DeveloperMetadata.metadata_id.
-              "visibility": "A String", # Limits the selected developer metadata to that which has a matching
-                  # DeveloperMetadata.visibility.  If left unspecified, all developer
-                  # metadata visibile to the requesting project is considered.
-              "metadataKey": "A String", # Limits the selected developer metadata to that which has a matching
-                  # DeveloperMetadata.metadata_key.
             },
-            "a1Range": "A String", # Selects data that matches the specified A1 range.
-            "gridRange": { # A range on a sheet. # Selects data that matches the range described by the GridRange.
-                # All indexes are zero-based.
-                # Indexes are half open, e.g the start index is inclusive
-                # and the end index is exclusive -- [start_index, end_index).
-                # Missing indexes indicate the range is unbounded on that side.
-                #
-                # For example, if `"Sheet1"` is sheet ID 0, then:
-                #
-                #   `Sheet1!A1:A1 == sheet_id: 0,
-                #                   start_row_index: 0, end_row_index: 1,
-                #                   start_column_index: 0, end_column_index: 1`
-                #
-                #   `Sheet1!A3:B4 == sheet_id: 0,
-                #                   start_row_index: 2, end_row_index: 4,
-                #                   start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A:B == sheet_id: 0,
-                #                 start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A5:B == sheet_id: 0,
-                #                  start_row_index: 4,
-                #                  start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1 == sheet_id:0`
-                #
-                # The start index must always be less than or equal to the end index.
-                # If the start index equals the end index, then the range is empty.
-                # Empty ranges are typically not meaningful and are usually rendered in the
-                # UI as `#REF!`.
-              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-              "sheetId": 42, # The sheet this range is on.
-              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-            },
+            "style": "A String", # The style of the border.
           },
         },
         "cutPaste": { # Moves data from the source to the destination. # Cuts data from one area and pastes it to another.
@@ -25293,14 +50464,14 @@
                 #
                 #      static Color* toProto(UIColor* color) {
                 #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                 #            return nil;
                 #          }
                 #          Color* result = [[Color alloc] init];
                 #          [result setRed:red];
                 #          [result setGreen:green];
                 #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
+                #          if (alpha &lt;= 0.9999) {
                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                 #          }
                 #          [result autorelease];
@@ -25330,11 +50501,11 @@
                 #     };
                 #
                 #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                 #       var hexString = rgbNumber.toString(16);
                 #       var missingZeros = 6 - hexString.length;
                 #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
+                #       for (var i = 0; i &lt; missingZeros; i++) {
                 #          resultBuilder.push('0');
                 #       }
                 #       resultBuilder.push(hexString);
@@ -25358,6 +50529,144 @@
               "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
             },
             "hidden": True or False, # True if the sheet is hidden in the UI, false if it's visible.
+            "tabColorStyle": { # A color value. # The color of the tab in the UI.
+                # If tab_color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
             "sheetId": 42, # The ID of the sheet. Must be non-negative.
                 # This field cannot be changed once set.
           },
@@ -25434,76 +50743,6 @@
             "dimension": "A String", # The dimension of the span.
           },
         },
-        "setDataValidation": { # Sets a data validation rule to every cell in the range. # Sets data validation for one or more cells.
-            # To clear validation in a range, call this with no rule specified.
-          "range": { # A range on a sheet. # The range the data validation rule should apply to.
-              # All indexes are zero-based.
-              # Indexes are half open, e.g the start index is inclusive
-              # and the end index is exclusive -- [start_index, end_index).
-              # Missing indexes indicate the range is unbounded on that side.
-              #
-              # For example, if `"Sheet1"` is sheet ID 0, then:
-              #
-              #   `Sheet1!A1:A1 == sheet_id: 0,
-              #                   start_row_index: 0, end_row_index: 1,
-              #                   start_column_index: 0, end_column_index: 1`
-              #
-              #   `Sheet1!A3:B4 == sheet_id: 0,
-              #                   start_row_index: 2, end_row_index: 4,
-              #                   start_column_index: 0, end_column_index: 2`
-              #
-              #   `Sheet1!A:B == sheet_id: 0,
-              #                 start_column_index: 0, end_column_index: 2`
-              #
-              #   `Sheet1!A5:B == sheet_id: 0,
-              #                  start_row_index: 4,
-              #                  start_column_index: 0, end_column_index: 2`
-              #
-              #   `Sheet1 == sheet_id:0`
-              #
-              # The start index must always be less than or equal to the end index.
-              # If the start index equals the end index, then the range is empty.
-              # Empty ranges are typically not meaningful and are usually rendered in the
-              # UI as `#REF!`.
-            "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-            "sheetId": 42, # The sheet this range is on.
-            "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-          },
-          "rule": { # A data validation rule. # The data validation rule to set on each cell in the range,
-              # or empty to clear the data validation in the range.
-            "showCustomUi": True or False, # True if the UI should be customized based on the kind of condition.
-                # If true, "List" conditions will show a dropdown.
-            "strict": True or False, # True if invalid data should be rejected.
-            "inputMessage": "A String", # A message to show the user when adding data to the cell.
-            "condition": { # A condition that can evaluate to true or false. # The condition that data in the cell must match.
-                # BooleanConditions are used by conditional formatting,
-                # data validation, and the criteria in filters.
-              "values": [ # The values of the condition. The number of supported values depends
-                  # on the condition type.  Some support zero values,
-                  # others one or two values,
-                  # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
-                { # The value of the condition.
-                  "relativeDate": "A String", # A relative date (based on the current date).
-                      # Valid only if the type is
-                      # DATE_BEFORE,
-                      # DATE_AFTER,
-                      # DATE_ON_OR_BEFORE or
-                      # DATE_ON_OR_AFTER.
-                      #
-                      # Relative dates are not supported in data validation.
-                      # They are supported only in conditional formatting and
-                      # conditional filters.
-                  "userEnteredValue": "A String", # A value the condition is based on.
-                      # The value is parsed as if the user typed into a cell.
-                      # Formulas are supported (and must begin with an `=` or a '+').
-                },
-              ],
-              "type": "A String", # The type of condition.
-            },
-          },
-        },
         "updateFilterView": { # Updates properties of the filter view. # Updates the properties of a filter view.
           "filter": { # A filter view. # The new properties of the filter view.
             "title": "A String", # The name of the filter view.
@@ -25553,6 +50792,556 @@
             "sortSpecs": [ # The sort order per column. Later specifications are used when values
                 # are equal in the earlier specifications.
               { # A sort order associated with a specific column or row.
+                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to sort by; cells with this foreground color are
+                    # sorted to the top. Mutually exclusive with background_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to sort by; cells with this fill color are sorted
+                    # to the top. Mutually exclusive with foreground_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "foregroundColorStyle": { # A color value. # The foreground color to sort by; cells with this foreground color are
+                    # sorted to the top. Mutually exclusive with background_color, and must
+                    # be an RGB-type color. If foreground_color is also set, this field takes
+                    # precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "backgroundColorStyle": { # A color value. # The background fill color to sort by; cells with this fill color are sorted
+                    # to the top. Mutually exclusive with foreground_color, and must be an
+                    # RGB-type color. If background_color is also set, this field takes
+                    # precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "sortOrder": "A String", # The order data should be sorted.
                 "dimensionIndex": 42, # The dimension the sort should be applied to.
               },
@@ -25561,11 +51350,561 @@
                 # The map's key is the column index, and the value is the criteria for
                 # that column.
               "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
+                "visibleBackgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to filter by; only cells with this fill color are
+                    # shown. Mutually exclusive with visible_foreground_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
                 "hiddenValues": [ # Values that should be hidden.
                   "A String",
                 ],
+                "visibleBackgroundColorStyle": { # A color value. # The background fill color to filter by; only cells with this fill color are
+                    # shown. This field is mutually exclusive with visible_foreground_color,
+                    # and must be set to an RGB-type color. If visible_background_color is
+                    # also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColorStyle": { # A color value. # The foreground color to filter by; only cells with this foreground color
+                    # are shown. This field is mutually exclusive with
+                    # visible_background_color, and must be set to an RGB-type color. If
+                    # visible_foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to filter by; only cells with this foreground color
+                    # are shown. Mutually exclusive with visible_background_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
                 "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
-                    # (This does not override hiddenValues -- if a value is listed there,
+                    # (This does not override hidden_values -- if a value is listed there,
                     #  it will still be hidden.)
                     # BooleanConditions are used by conditional formatting,
                     # data validation, and the criteria in filters.
@@ -25646,8 +51985,8 @@
               "sheetId": 42, # The sheet this span is on.
               "dimension": "A String", # The dimension of the span.
             },
-            "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
             "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+            "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
           },
           "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
               # specified.
@@ -25657,1387 +51996,30 @@
       ],
       "sheets": [ # The sheets that are part of a spreadsheet.
         { # A sheet in a spreadsheet.
-          "conditionalFormats": [ # The conditional format rules in this sheet.
-            { # A rule describing a conditional format.
-              "ranges": [ # The ranges that are formatted if the condition is true.
-                  # All the ranges must be on the same grid.
-                { # A range on a sheet.
-                    # All indexes are zero-based.
-                    # Indexes are half open, e.g the start index is inclusive
-                    # and the end index is exclusive -- [start_index, end_index).
-                    # Missing indexes indicate the range is unbounded on that side.
-                    #
-                    # For example, if `"Sheet1"` is sheet ID 0, then:
-                    #
-                    #   `Sheet1!A1:A1 == sheet_id: 0,
-                    #                   start_row_index: 0, end_row_index: 1,
-                    #                   start_column_index: 0, end_column_index: 1`
-                    #
-                    #   `Sheet1!A3:B4 == sheet_id: 0,
-                    #                   start_row_index: 2, end_row_index: 4,
-                    #                   start_column_index: 0, end_column_index: 2`
-                    #
-                    #   `Sheet1!A:B == sheet_id: 0,
-                    #                 start_column_index: 0, end_column_index: 2`
-                    #
-                    #   `Sheet1!A5:B == sheet_id: 0,
-                    #                  start_row_index: 4,
-                    #                  start_column_index: 0, end_column_index: 2`
-                    #
-                    #   `Sheet1 == sheet_id:0`
-                    #
-                    # The start index must always be less than or equal to the end index.
-                    # If the start index equals the end index, then the range is empty.
-                    # Empty ranges are typically not meaningful and are usually rendered in the
-                    # UI as `#REF!`.
-                  "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                  "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-                  "sheetId": 42, # The sheet this range is on.
-                  "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                  "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-                },
-              ],
-              "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
-                "condition": { # A condition that can evaluate to true or false. # The condition of the rule. If the condition evaluates to true,
-                    # the format is applied.
-                    # BooleanConditions are used by conditional formatting,
-                    # data validation, and the criteria in filters.
-                  "values": [ # The values of the condition. The number of supported values depends
-                      # on the condition type.  Some support zero values,
-                      # others one or two values,
-                      # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
-                    { # The value of the condition.
-                      "relativeDate": "A String", # A relative date (based on the current date).
-                          # Valid only if the type is
-                          # DATE_BEFORE,
-                          # DATE_AFTER,
-                          # DATE_ON_OR_BEFORE or
-                          # DATE_ON_OR_AFTER.
-                          #
-                          # Relative dates are not supported in data validation.
-                          # They are supported only in conditional formatting and
-                          # conditional filters.
-                      "userEnteredValue": "A String", # A value the condition is based on.
-                          # The value is parsed as if the user typed into a cell.
-                          # Formulas are supported (and must begin with an `=` or a '+').
-                    },
-                  ],
-                  "type": "A String", # The type of condition.
-                },
-                "format": { # The format of a cell. # The format to apply.
-                    # Conditional formatting can only apply a subset of formatting:
-                    # bold, italic,
-                    # strikethrough,
-                    # foreground color &
-                    # background color.
-                  "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
-                    "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
-                        # the user's locale will be used if necessary for the given type.
-                        # See the [Date and Number Formats guide](/sheets/api/guides/formats) for
-                        # more information about the supported patterns.
-                    "type": "A String", # The type of the number format.
-                        # When writing, this field must be set.
-                  },
-                  "textDirection": "A String", # The direction of the text in the cell.
-                  "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                      # When updating padding, every field must be specified.
-                    "top": 42, # The top padding of the cell.
-                    "left": 42, # The left padding of the cell.
-                    "right": 42, # The right padding of the cell.
-                    "bottom": 42, # The bottom padding of the cell.
-                  },
-                  "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
-                  "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
-                        #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                        #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                  },
-                  "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
-                  "borders": { # The borders of the cell. # The borders of the cell.
-                    "top": { # A border along a cell. # The top border of the cell.
-                      "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                          # for simplicity of conversion to/from color representations in various
-                          # languages over compactness; for example, the fields of this representation
-                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                          # method in iOS; and, with just a little work, it can be easily formatted into
-                          # a CSS "rgba()" string in JavaScript, as well.
-                          #
-                          # Note: this proto does not carry information about the absolute color space
-                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                          # space.
-                          #
-                          # Example (Java):
-                          #
-                          #      import com.google.type.Color;
-                          #
-                          #      // ...
-                          #      public static java.awt.Color fromProto(Color protocolor) {
-                          #        float alpha = protocolor.hasAlpha()
-                          #            ? protocolor.getAlpha().getValue()
-                          #            : 1.0;
-                          #
-                          #        return new java.awt.Color(
-                          #            protocolor.getRed(),
-                          #            protocolor.getGreen(),
-                          #            protocolor.getBlue(),
-                          #            alpha);
-                          #      }
-                          #
-                          #      public static Color toProto(java.awt.Color color) {
-                          #        float red = (float) color.getRed();
-                          #        float green = (float) color.getGreen();
-                          #        float blue = (float) color.getBlue();
-                          #        float denominator = 255.0;
-                          #        Color.Builder resultBuilder =
-                          #            Color
-                          #                .newBuilder()
-                          #                .setRed(red / denominator)
-                          #                .setGreen(green / denominator)
-                          #                .setBlue(blue / denominator);
-                          #        int alpha = color.getAlpha();
-                          #        if (alpha != 255) {
-                          #          result.setAlpha(
-                          #              FloatValue
-                          #                  .newBuilder()
-                          #                  .setValue(((float) alpha) / denominator)
-                          #                  .build());
-                          #        }
-                          #        return resultBuilder.build();
-                          #      }
-                          #      // ...
-                          #
-                          # Example (iOS / Obj-C):
-                          #
-                          #      // ...
-                          #      static UIColor* fromProto(Color* protocolor) {
-                          #         float red = [protocolor red];
-                          #         float green = [protocolor green];
-                          #         float blue = [protocolor blue];
-                          #         FloatValue* alpha_wrapper = [protocolor alpha];
-                          #         float alpha = 1.0;
-                          #         if (alpha_wrapper != nil) {
-                          #           alpha = [alpha_wrapper value];
-                          #         }
-                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                          #      }
-                          #
-                          #      static Color* toProto(UIColor* color) {
-                          #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                          #            return nil;
-                          #          }
-                          #          Color* result = [[Color alloc] init];
-                          #          [result setRed:red];
-                          #          [result setGreen:green];
-                          #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
-                          #            [result setAlpha:floatWrapperWithValue(alpha)];
-                          #          }
-                          #          [result autorelease];
-                          #          return result;
-                          #     }
-                          #     // ...
-                          #
-                          #  Example (JavaScript):
-                          #
-                          #     // ...
-                          #
-                          #     var protoToCssColor = function(rgb_color) {
-                          #        var redFrac = rgb_color.red || 0.0;
-                          #        var greenFrac = rgb_color.green || 0.0;
-                          #        var blueFrac = rgb_color.blue || 0.0;
-                          #        var red = Math.floor(redFrac * 255);
-                          #        var green = Math.floor(greenFrac * 255);
-                          #        var blue = Math.floor(blueFrac * 255);
-                          #
-                          #        if (!('alpha' in rgb_color)) {
-                          #           return rgbToCssColor_(red, green, blue);
-                          #        }
-                          #
-                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                          #        var rgbParams = [red, green, blue].join(',');
-                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                          #     };
-                          #
-                          #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                          #       var hexString = rgbNumber.toString(16);
-                          #       var missingZeros = 6 - hexString.length;
-                          #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
-                          #          resultBuilder.push('0');
-                          #       }
-                          #       resultBuilder.push(hexString);
-                          #       return resultBuilder.join('');
-                          #     };
-                          #
-                          #     // ...
-                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                            # the final pixel color is defined by the equation:
-                            #
-                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                            #
-                            # This means that a value of 1.0 corresponds to a solid color, whereas
-                            # a value of 0.0 corresponds to a completely transparent color. This
-                            # uses a wrapper message rather than a simple float scalar so that it is
-                            # possible to distinguish between a default value and the value being unset.
-                            # If omitted, this color object is to be rendered as a solid color
-                            # (as if the alpha value had been explicitly given with a value of 1.0).
-                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                      },
-                      "width": 42, # The width of the border, in pixels.
-                          # Deprecated; the width is determined by the "style" field.
-                      "style": "A String", # The style of the border.
-                    },
-                    "right": { # A border along a cell. # The right border of the cell.
-                      "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                          # for simplicity of conversion to/from color representations in various
-                          # languages over compactness; for example, the fields of this representation
-                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                          # method in iOS; and, with just a little work, it can be easily formatted into
-                          # a CSS "rgba()" string in JavaScript, as well.
-                          #
-                          # Note: this proto does not carry information about the absolute color space
-                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                          # space.
-                          #
-                          # Example (Java):
-                          #
-                          #      import com.google.type.Color;
-                          #
-                          #      // ...
-                          #      public static java.awt.Color fromProto(Color protocolor) {
-                          #        float alpha = protocolor.hasAlpha()
-                          #            ? protocolor.getAlpha().getValue()
-                          #            : 1.0;
-                          #
-                          #        return new java.awt.Color(
-                          #            protocolor.getRed(),
-                          #            protocolor.getGreen(),
-                          #            protocolor.getBlue(),
-                          #            alpha);
-                          #      }
-                          #
-                          #      public static Color toProto(java.awt.Color color) {
-                          #        float red = (float) color.getRed();
-                          #        float green = (float) color.getGreen();
-                          #        float blue = (float) color.getBlue();
-                          #        float denominator = 255.0;
-                          #        Color.Builder resultBuilder =
-                          #            Color
-                          #                .newBuilder()
-                          #                .setRed(red / denominator)
-                          #                .setGreen(green / denominator)
-                          #                .setBlue(blue / denominator);
-                          #        int alpha = color.getAlpha();
-                          #        if (alpha != 255) {
-                          #          result.setAlpha(
-                          #              FloatValue
-                          #                  .newBuilder()
-                          #                  .setValue(((float) alpha) / denominator)
-                          #                  .build());
-                          #        }
-                          #        return resultBuilder.build();
-                          #      }
-                          #      // ...
-                          #
-                          # Example (iOS / Obj-C):
-                          #
-                          #      // ...
-                          #      static UIColor* fromProto(Color* protocolor) {
-                          #         float red = [protocolor red];
-                          #         float green = [protocolor green];
-                          #         float blue = [protocolor blue];
-                          #         FloatValue* alpha_wrapper = [protocolor alpha];
-                          #         float alpha = 1.0;
-                          #         if (alpha_wrapper != nil) {
-                          #           alpha = [alpha_wrapper value];
-                          #         }
-                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                          #      }
-                          #
-                          #      static Color* toProto(UIColor* color) {
-                          #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                          #            return nil;
-                          #          }
-                          #          Color* result = [[Color alloc] init];
-                          #          [result setRed:red];
-                          #          [result setGreen:green];
-                          #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
-                          #            [result setAlpha:floatWrapperWithValue(alpha)];
-                          #          }
-                          #          [result autorelease];
-                          #          return result;
-                          #     }
-                          #     // ...
-                          #
-                          #  Example (JavaScript):
-                          #
-                          #     // ...
-                          #
-                          #     var protoToCssColor = function(rgb_color) {
-                          #        var redFrac = rgb_color.red || 0.0;
-                          #        var greenFrac = rgb_color.green || 0.0;
-                          #        var blueFrac = rgb_color.blue || 0.0;
-                          #        var red = Math.floor(redFrac * 255);
-                          #        var green = Math.floor(greenFrac * 255);
-                          #        var blue = Math.floor(blueFrac * 255);
-                          #
-                          #        if (!('alpha' in rgb_color)) {
-                          #           return rgbToCssColor_(red, green, blue);
-                          #        }
-                          #
-                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                          #        var rgbParams = [red, green, blue].join(',');
-                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                          #     };
-                          #
-                          #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                          #       var hexString = rgbNumber.toString(16);
-                          #       var missingZeros = 6 - hexString.length;
-                          #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
-                          #          resultBuilder.push('0');
-                          #       }
-                          #       resultBuilder.push(hexString);
-                          #       return resultBuilder.join('');
-                          #     };
-                          #
-                          #     // ...
-                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                            # the final pixel color is defined by the equation:
-                            #
-                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                            #
-                            # This means that a value of 1.0 corresponds to a solid color, whereas
-                            # a value of 0.0 corresponds to a completely transparent color. This
-                            # uses a wrapper message rather than a simple float scalar so that it is
-                            # possible to distinguish between a default value and the value being unset.
-                            # If omitted, this color object is to be rendered as a solid color
-                            # (as if the alpha value had been explicitly given with a value of 1.0).
-                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                      },
-                      "width": 42, # The width of the border, in pixels.
-                          # Deprecated; the width is determined by the "style" field.
-                      "style": "A String", # The style of the border.
-                    },
-                    "bottom": { # A border along a cell. # The bottom border of the cell.
-                      "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                          # for simplicity of conversion to/from color representations in various
-                          # languages over compactness; for example, the fields of this representation
-                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                          # method in iOS; and, with just a little work, it can be easily formatted into
-                          # a CSS "rgba()" string in JavaScript, as well.
-                          #
-                          # Note: this proto does not carry information about the absolute color space
-                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                          # space.
-                          #
-                          # Example (Java):
-                          #
-                          #      import com.google.type.Color;
-                          #
-                          #      // ...
-                          #      public static java.awt.Color fromProto(Color protocolor) {
-                          #        float alpha = protocolor.hasAlpha()
-                          #            ? protocolor.getAlpha().getValue()
-                          #            : 1.0;
-                          #
-                          #        return new java.awt.Color(
-                          #            protocolor.getRed(),
-                          #            protocolor.getGreen(),
-                          #            protocolor.getBlue(),
-                          #            alpha);
-                          #      }
-                          #
-                          #      public static Color toProto(java.awt.Color color) {
-                          #        float red = (float) color.getRed();
-                          #        float green = (float) color.getGreen();
-                          #        float blue = (float) color.getBlue();
-                          #        float denominator = 255.0;
-                          #        Color.Builder resultBuilder =
-                          #            Color
-                          #                .newBuilder()
-                          #                .setRed(red / denominator)
-                          #                .setGreen(green / denominator)
-                          #                .setBlue(blue / denominator);
-                          #        int alpha = color.getAlpha();
-                          #        if (alpha != 255) {
-                          #          result.setAlpha(
-                          #              FloatValue
-                          #                  .newBuilder()
-                          #                  .setValue(((float) alpha) / denominator)
-                          #                  .build());
-                          #        }
-                          #        return resultBuilder.build();
-                          #      }
-                          #      // ...
-                          #
-                          # Example (iOS / Obj-C):
-                          #
-                          #      // ...
-                          #      static UIColor* fromProto(Color* protocolor) {
-                          #         float red = [protocolor red];
-                          #         float green = [protocolor green];
-                          #         float blue = [protocolor blue];
-                          #         FloatValue* alpha_wrapper = [protocolor alpha];
-                          #         float alpha = 1.0;
-                          #         if (alpha_wrapper != nil) {
-                          #           alpha = [alpha_wrapper value];
-                          #         }
-                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                          #      }
-                          #
-                          #      static Color* toProto(UIColor* color) {
-                          #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                          #            return nil;
-                          #          }
-                          #          Color* result = [[Color alloc] init];
-                          #          [result setRed:red];
-                          #          [result setGreen:green];
-                          #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
-                          #            [result setAlpha:floatWrapperWithValue(alpha)];
-                          #          }
-                          #          [result autorelease];
-                          #          return result;
-                          #     }
-                          #     // ...
-                          #
-                          #  Example (JavaScript):
-                          #
-                          #     // ...
-                          #
-                          #     var protoToCssColor = function(rgb_color) {
-                          #        var redFrac = rgb_color.red || 0.0;
-                          #        var greenFrac = rgb_color.green || 0.0;
-                          #        var blueFrac = rgb_color.blue || 0.0;
-                          #        var red = Math.floor(redFrac * 255);
-                          #        var green = Math.floor(greenFrac * 255);
-                          #        var blue = Math.floor(blueFrac * 255);
-                          #
-                          #        if (!('alpha' in rgb_color)) {
-                          #           return rgbToCssColor_(red, green, blue);
-                          #        }
-                          #
-                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                          #        var rgbParams = [red, green, blue].join(',');
-                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                          #     };
-                          #
-                          #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                          #       var hexString = rgbNumber.toString(16);
-                          #       var missingZeros = 6 - hexString.length;
-                          #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
-                          #          resultBuilder.push('0');
-                          #       }
-                          #       resultBuilder.push(hexString);
-                          #       return resultBuilder.join('');
-                          #     };
-                          #
-                          #     // ...
-                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                            # the final pixel color is defined by the equation:
-                            #
-                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                            #
-                            # This means that a value of 1.0 corresponds to a solid color, whereas
-                            # a value of 0.0 corresponds to a completely transparent color. This
-                            # uses a wrapper message rather than a simple float scalar so that it is
-                            # possible to distinguish between a default value and the value being unset.
-                            # If omitted, this color object is to be rendered as a solid color
-                            # (as if the alpha value had been explicitly given with a value of 1.0).
-                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                      },
-                      "width": 42, # The width of the border, in pixels.
-                          # Deprecated; the width is determined by the "style" field.
-                      "style": "A String", # The style of the border.
-                    },
-                    "left": { # A border along a cell. # The left border of the cell.
-                      "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                          # for simplicity of conversion to/from color representations in various
-                          # languages over compactness; for example, the fields of this representation
-                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                          # method in iOS; and, with just a little work, it can be easily formatted into
-                          # a CSS "rgba()" string in JavaScript, as well.
-                          #
-                          # Note: this proto does not carry information about the absolute color space
-                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                          # space.
-                          #
-                          # Example (Java):
-                          #
-                          #      import com.google.type.Color;
-                          #
-                          #      // ...
-                          #      public static java.awt.Color fromProto(Color protocolor) {
-                          #        float alpha = protocolor.hasAlpha()
-                          #            ? protocolor.getAlpha().getValue()
-                          #            : 1.0;
-                          #
-                          #        return new java.awt.Color(
-                          #            protocolor.getRed(),
-                          #            protocolor.getGreen(),
-                          #            protocolor.getBlue(),
-                          #            alpha);
-                          #      }
-                          #
-                          #      public static Color toProto(java.awt.Color color) {
-                          #        float red = (float) color.getRed();
-                          #        float green = (float) color.getGreen();
-                          #        float blue = (float) color.getBlue();
-                          #        float denominator = 255.0;
-                          #        Color.Builder resultBuilder =
-                          #            Color
-                          #                .newBuilder()
-                          #                .setRed(red / denominator)
-                          #                .setGreen(green / denominator)
-                          #                .setBlue(blue / denominator);
-                          #        int alpha = color.getAlpha();
-                          #        if (alpha != 255) {
-                          #          result.setAlpha(
-                          #              FloatValue
-                          #                  .newBuilder()
-                          #                  .setValue(((float) alpha) / denominator)
-                          #                  .build());
-                          #        }
-                          #        return resultBuilder.build();
-                          #      }
-                          #      // ...
-                          #
-                          # Example (iOS / Obj-C):
-                          #
-                          #      // ...
-                          #      static UIColor* fromProto(Color* protocolor) {
-                          #         float red = [protocolor red];
-                          #         float green = [protocolor green];
-                          #         float blue = [protocolor blue];
-                          #         FloatValue* alpha_wrapper = [protocolor alpha];
-                          #         float alpha = 1.0;
-                          #         if (alpha_wrapper != nil) {
-                          #           alpha = [alpha_wrapper value];
-                          #         }
-                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                          #      }
-                          #
-                          #      static Color* toProto(UIColor* color) {
-                          #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                          #            return nil;
-                          #          }
-                          #          Color* result = [[Color alloc] init];
-                          #          [result setRed:red];
-                          #          [result setGreen:green];
-                          #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
-                          #            [result setAlpha:floatWrapperWithValue(alpha)];
-                          #          }
-                          #          [result autorelease];
-                          #          return result;
-                          #     }
-                          #     // ...
-                          #
-                          #  Example (JavaScript):
-                          #
-                          #     // ...
-                          #
-                          #     var protoToCssColor = function(rgb_color) {
-                          #        var redFrac = rgb_color.red || 0.0;
-                          #        var greenFrac = rgb_color.green || 0.0;
-                          #        var blueFrac = rgb_color.blue || 0.0;
-                          #        var red = Math.floor(redFrac * 255);
-                          #        var green = Math.floor(greenFrac * 255);
-                          #        var blue = Math.floor(blueFrac * 255);
-                          #
-                          #        if (!('alpha' in rgb_color)) {
-                          #           return rgbToCssColor_(red, green, blue);
-                          #        }
-                          #
-                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                          #        var rgbParams = [red, green, blue].join(',');
-                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                          #     };
-                          #
-                          #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                          #       var hexString = rgbNumber.toString(16);
-                          #       var missingZeros = 6 - hexString.length;
-                          #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
-                          #          resultBuilder.push('0');
-                          #       }
-                          #       resultBuilder.push(hexString);
-                          #       return resultBuilder.join('');
-                          #     };
-                          #
-                          #     // ...
-                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                            # the final pixel color is defined by the equation:
-                            #
-                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                            #
-                            # This means that a value of 1.0 corresponds to a solid color, whereas
-                            # a value of 0.0 corresponds to a completely transparent color. This
-                            # uses a wrapper message rather than a simple float scalar so that it is
-                            # possible to distinguish between a default value and the value being unset.
-                            # If omitted, this color object is to be rendered as a solid color
-                            # (as if the alpha value had been explicitly given with a value of 1.0).
-                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                      },
-                      "width": 42, # The width of the border, in pixels.
-                          # Deprecated; the width is determined by the "style" field.
-                      "style": "A String", # The style of the border.
-                    },
-                  },
-                  "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
-                    "angle": 42, # The angle between the standard orientation and the desired orientation.
-                        # Measured in degrees. Valid values are between -90 and 90. Positive
-                        # angles are angled upwards, negative are angled downwards.
-                        #
-                        # Note: For LTR text direction positive angles are in the
-                        # counterclockwise direction, whereas for RTL they are in the clockwise
-                        # direction
-                    "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
-                        # characters is unchanged.
-                        # For example:
-                        #
-                        #     | V |
-                        #     | e |
-                        #     | r |
-                        #     | t |
-                        #     | i |
-                        #     | c |
-                        #     | a |
-                        #     | l |
-                  },
-                  "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
-                  "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
-                      # Absent values indicate that the field isn't specified.
-                    "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                    },
-                    "bold": True or False, # True if the text is bold.
-                    "strikethrough": True or False, # True if the text has a strikethrough.
-                    "fontFamily": "A String", # The font family.
-                    "fontSize": 42, # The size of the font.
-                    "italic": True or False, # True if the text is italicized.
-                    "underline": True or False, # True if the text is underlined.
-                  },
-                  "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
-                },
-              },
-              "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule.
-                  # the interpolation points listed. The format of a cell will vary
-                  # based on its contents as compared to the values of the interpolation
-                  # points.
-                "maxpoint": { # A single interpolation point on a gradient conditional format. # The final interpolation point.
-                    # These pin the gradient color scale according to the color,
-                    # type and value chosen.
-                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
-                        #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                        #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                  },
-                  "type": "A String", # How the value should be interpreted.
-                  "value": "A String", # The value this interpolation point uses.  May be a formula.
-                      # Unused if type is MIN or
-                      # MAX.
-                },
-                "midpoint": { # A single interpolation point on a gradient conditional format. # An optional midway interpolation point.
-                    # These pin the gradient color scale according to the color,
-                    # type and value chosen.
-                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
-                        #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                        #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                  },
-                  "type": "A String", # How the value should be interpreted.
-                  "value": "A String", # The value this interpolation point uses.  May be a formula.
-                      # Unused if type is MIN or
-                      # MAX.
-                },
-                "minpoint": { # A single interpolation point on a gradient conditional format. # The starting interpolation point.
-                    # These pin the gradient color scale according to the color,
-                    # type and value chosen.
-                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
-                        #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                        #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                  },
-                  "type": "A String", # How the value should be interpreted.
-                  "value": "A String", # The value this interpolation point uses.  May be a formula.
-                      # Unused if type is MIN or
-                      # MAX.
-                },
+          "columnGroups": [ # All column groups on this sheet, ordered by increasing range start index,
+              # then by group depth.
+            { # A group over an interval of rows or columns on a sheet, which can contain or
+                # be contained within other groups. A group can be collapsed or expanded as a
+                # unit on the sheet.
+              "depth": 42, # The depth of the group, representing how many groups have a range that
+                  # wholly contains the range of this group.
+              "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
+                  # collapsed if an overlapping group at a shallower depth is expanded.
+                  #
+                  # A true value does not imply that all dimensions within the group are
+                  # hidden, since a dimension's visibility can change independently from this
+                  # group property. However, when this property is updated, all dimensions
+                  # within it are set to hidden if this field is true, or set to visible if
+                  # this field is false.
+              "range": { # A range along a single dimension on a sheet. # The range over which this group exists.
+                  # All indexes are zero-based.
+                  # Indexes are half open: the start index is inclusive
+                  # and the end index is exclusive.
+                  # Missing indexes indicate the range is unbounded on that side.
+                "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
+                "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
+                "sheetId": 42, # The sheet this span is on.
+                "dimension": "A String", # The dimension of the span.
               },
             },
           ],
@@ -27163,14 +52145,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -27200,11 +52182,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -27227,12 +52209,12 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
-                "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first
-                    # row or column will be filled with this color and the colors will
-                    # alternate between first_band_color and second_band_color starting
-                    # from the second row or column. Otherwise, the first row or column will be
-                    # filled with first_band_color and the colors will proceed to alternate
-                    # as they normally would.
+                "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first row
+                    # or column is filled with this color and the colors alternate between
+                    # first_band_color and second_band_color starting from the second
+                    # row or column. Otherwise, the first row or column is filled with
+                    # first_band_color and the colors proceed to alternate as they normally
+                    # would.
                     # for simplicity of conversion to/from color representations in various
                     # languages over compactness; for example, the fields of this representation
                     # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -27302,14 +52284,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -27339,11 +52321,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -27366,142 +52348,426 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
-                "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
-                    # row or column will be filled with either first_band_color or
+                "footerColorStyle": { # A color value. # The color of the last row or column. If this field is not set, the last
+                    # row or column is filled with either first_band_color or
                     # second_band_color, depending on the color of the previous row or
                     # column.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
+                    # If footer_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
                       #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
                       #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "headerColorStyle": { # A color value. # The color of the first row or column. If this field is set, the first row
+                    # or column is filled with this color and the colors alternate between
+                    # first_band_color and second_band_color starting from the second
+                    # row or column. Otherwise, the first row or column is filled with
+                    # first_band_color and the colors proceed to alternate as they normally
+                    # would. If header_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "secondBandColorStyle": { # A color value. # The second color that is alternating. (Required)
+                    # If second_band_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
                 },
                 "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required)
                     # for simplicity of conversion to/from color representations in various
@@ -27573,14 +52839,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -27610,11 +52876,286 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "firstBandColorStyle": { # A color value. # The first color that is alternating. (Required)
+                    # If first_band_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
+                    # row or column is filled with either first_band_color or
+                    # second_band_color, depending on the color of the previous row or
+                    # column.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -27723,14 +53264,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -27760,11 +53301,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -27787,12 +53328,12 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
-                "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first
-                    # row or column will be filled with this color and the colors will
-                    # alternate between first_band_color and second_band_color starting
-                    # from the second row or column. Otherwise, the first row or column will be
-                    # filled with first_band_color and the colors will proceed to alternate
-                    # as they normally would.
+                "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first row
+                    # or column is filled with this color and the colors alternate between
+                    # first_band_color and second_band_color starting from the second
+                    # row or column. Otherwise, the first row or column is filled with
+                    # first_band_color and the colors proceed to alternate as they normally
+                    # would.
                     # for simplicity of conversion to/from color representations in various
                     # languages over compactness; for example, the fields of this representation
                     # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -27862,14 +53403,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -27899,11 +53440,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -27926,142 +53467,426 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
-                "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
-                    # row or column will be filled with either first_band_color or
+                "footerColorStyle": { # A color value. # The color of the last row or column. If this field is not set, the last
+                    # row or column is filled with either first_band_color or
                     # second_band_color, depending on the color of the previous row or
                     # column.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
+                    # If footer_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
                       #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
                       #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "headerColorStyle": { # A color value. # The color of the first row or column. If this field is set, the first row
+                    # or column is filled with this color and the colors alternate between
+                    # first_band_color and second_band_color starting from the second
+                    # row or column. Otherwise, the first row or column is filled with
+                    # first_band_color and the colors proceed to alternate as they normally
+                    # would. If header_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "secondBandColorStyle": { # A color value. # The second color that is alternating. (Required)
+                    # If second_band_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
                 },
                 "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required)
                     # for simplicity of conversion to/from color representations in various
@@ -28133,14 +53958,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -28170,11 +53995,286 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "firstBandColorStyle": { # A color value. # The first color that is alternating. (Required)
+                    # If first_band_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
+                    # row or column is filled with either first_band_color or
+                    # second_band_color, depending on the color of the previous row or
+                    # column.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -28277,400 +54377,282 @@
             "sortSpecs": [ # The sort order per column. Later specifications are used when values
                 # are equal in the earlier specifications.
               { # A sort order associated with a specific column or row.
-                "sortOrder": "A String", # The order data should be sorted.
-                "dimensionIndex": 42, # The dimension the sort should be applied to.
-              },
-            ],
-            "criteria": { # The criteria for showing/hiding values per column.
-                # The map's key is the column index, and the value is the criteria for
-                # that column.
-              "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
-                "hiddenValues": [ # Values that should be hidden.
-                  "A String",
-                ],
-                "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
-                    # (This does not override hiddenValues -- if a value is listed there,
-                    #  it will still be hidden.)
-                    # BooleanConditions are used by conditional formatting,
-                    # data validation, and the criteria in filters.
-                  "values": [ # The values of the condition. The number of supported values depends
-                      # on the condition type.  Some support zero values,
-                      # others one or two values,
-                      # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
-                    { # The value of the condition.
-                      "relativeDate": "A String", # A relative date (based on the current date).
-                          # Valid only if the type is
-                          # DATE_BEFORE,
-                          # DATE_AFTER,
-                          # DATE_ON_OR_BEFORE or
-                          # DATE_ON_OR_AFTER.
-                          #
-                          # Relative dates are not supported in data validation.
-                          # They are supported only in conditional formatting and
-                          # conditional filters.
-                      "userEnteredValue": "A String", # A value the condition is based on.
-                          # The value is parsed as if the user typed into a cell.
-                          # Formulas are supported (and must begin with an `=` or a '+').
-                    },
-                  ],
-                  "type": "A String", # The type of condition.
+                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to sort by; cells with this foreground color are
+                    # sorted to the top. Mutually exclusive with background_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
-              },
-            },
-          },
-          "developerMetadata": [ # The developer metadata associated with a sheet.
-            { # Developer metadata associated with a location or object in a spreadsheet.
-                # Developer metadata may be used to associate arbitrary data with various
-                # parts of a spreadsheet and will remain associated at those locations as they
-                # move around and the spreadsheet is edited.  For example, if developer
-                # metadata is associated with row 5 and another row is then subsequently
-                # inserted above row 5, that original metadata will still be associated with
-                # the row it was first associated with (what is now row 6). If the associated
-                # object is deleted its metadata is deleted too.
-              "metadataId": 42, # The spreadsheet-scoped unique ID that identifies the metadata. IDs may be
-                  # specified when metadata is created, otherwise one will be randomly
-                  # generated and assigned. Must be positive.
-              "metadataValue": "A String", # Data associated with the metadata's key.
-              "location": { # A location where metadata may be associated in a spreadsheet. # The location where the metadata is associated.
-                "locationType": "A String", # The type of location this object represents.  This field is read-only.
-                "dimensionRange": { # A range along a single dimension on a sheet. # Represents the row or column when metadata is associated with
-                    # a dimension. The specified DimensionRange must represent a single row
-                    # or column; it cannot be unbounded or span multiple rows or columns.
-                    # All indexes are zero-based.
-                    # Indexes are half open: the start index is inclusive
-                    # and the end index is exclusive.
-                    # Missing indexes indicate the range is unbounded on that side.
-                  "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
-                  "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
-                  "sheetId": 42, # The sheet this span is on.
-                  "dimension": "A String", # The dimension of the span.
+                "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to sort by; cells with this fill color are sorted
+                    # to the top. Mutually exclusive with foreground_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
-                "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
-                "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
-              },
-              "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
-                  # specified.
-              "metadataKey": "A String", # The metadata key. There may be multiple metadata in a spreadsheet with the
-                  # same key.  Developer metadata must always have a key specified.
-            },
-          ],
-          "columnGroups": [ # All column groups on this sheet, ordered by increasing range start index,
-              # then by group depth.
-            { # A group over an interval of rows or columns on a sheet, which can contain or
-                # be contained within other groups. A group can be collapsed or expanded as a
-                # unit on the sheet.
-              "range": { # A range along a single dimension on a sheet. # The range over which this group exists.
-                  # All indexes are zero-based.
-                  # Indexes are half open: the start index is inclusive
-                  # and the end index is exclusive.
-                  # Missing indexes indicate the range is unbounded on that side.
-                "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
-                "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
-                "sheetId": 42, # The sheet this span is on.
-                "dimension": "A String", # The dimension of the span.
-              },
-              "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
-                  # collapsed if an overlapping group at a shallower depth is expanded.
-                  #
-                  # A true value does not imply that all dimensions within the group are
-                  # hidden, since a dimension's visibility can change independently from this
-                  # group property. However, when this property is updated, all dimensions
-                  # within it are set to hidden if this field is true, or set to visible if
-                  # this field is false.
-              "depth": 42, # The depth of the group, representing how many groups have a range that
-                  # wholly contains the range of this group.
-            },
-          ],
-          "properties": { # Properties of a sheet. # The properties of the sheet.
-            "sheetType": "A String", # The type of sheet. Defaults to GRID.
-                # This field cannot be changed once set.
-            "index": 42, # The index of the sheet within the spreadsheet.
-                # When adding or updating sheet properties, if this field
-                # is excluded then the sheet is added or moved to the end
-                # of the sheet list. When updating sheet indices or inserting
-                # sheets, movement is considered in "before the move" indexes.
-                # For example, if there were 3 sheets (S1, S2, S3) in order to
-                # move S1 ahead of S2 the index would have to be set to 2. A sheet
-                # index update request is ignored if the requested index is
-                # identical to the sheets current index or if the requested new
-                # index is equal to the current sheet index + 1.
-            "title": "A String", # The name of the sheet.
-            "gridProperties": { # Properties of a grid. # Additional properties of the sheet if this sheet is a grid.
-                # (If the sheet is an object sheet, containing a chart or image, then
-                # this field will be absent.)
-                # When writing it is an error to set any grid properties on non-grid sheets.
-              "columnCount": 42, # The number of columns in the grid.
-              "rowGroupControlAfter": True or False, # True if the row grouping control toggle is shown after the group.
-              "columnGroupControlAfter": True or False, # True if the column grouping control toggle is shown after the group.
-              "frozenRowCount": 42, # The number of rows that are frozen in the grid.
-              "frozenColumnCount": 42, # The number of columns that are frozen in the grid.
-              "rowCount": 42, # The number of rows in the grid.
-              "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI.
-            },
-            "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet.
-            "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI.
-                # for simplicity of conversion to/from color representations in various
-                # languages over compactness; for example, the fields of this representation
-                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                # method in iOS; and, with just a little work, it can be easily formatted into
-                # a CSS "rgba()" string in JavaScript, as well.
-                #
-                # Note: this proto does not carry information about the absolute color space
-                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                # space.
-                #
-                # Example (Java):
-                #
-                #      import com.google.type.Color;
-                #
-                #      // ...
-                #      public static java.awt.Color fromProto(Color protocolor) {
-                #        float alpha = protocolor.hasAlpha()
-                #            ? protocolor.getAlpha().getValue()
-                #            : 1.0;
-                #
-                #        return new java.awt.Color(
-                #            protocolor.getRed(),
-                #            protocolor.getGreen(),
-                #            protocolor.getBlue(),
-                #            alpha);
-                #      }
-                #
-                #      public static Color toProto(java.awt.Color color) {
-                #        float red = (float) color.getRed();
-                #        float green = (float) color.getGreen();
-                #        float blue = (float) color.getBlue();
-                #        float denominator = 255.0;
-                #        Color.Builder resultBuilder =
-                #            Color
-                #                .newBuilder()
-                #                .setRed(red / denominator)
-                #                .setGreen(green / denominator)
-                #                .setBlue(blue / denominator);
-                #        int alpha = color.getAlpha();
-                #        if (alpha != 255) {
-                #          result.setAlpha(
-                #              FloatValue
-                #                  .newBuilder()
-                #                  .setValue(((float) alpha) / denominator)
-                #                  .build());
-                #        }
-                #        return resultBuilder.build();
-                #      }
-                #      // ...
-                #
-                # Example (iOS / Obj-C):
-                #
-                #      // ...
-                #      static UIColor* fromProto(Color* protocolor) {
-                #         float red = [protocolor red];
-                #         float green = [protocolor green];
-                #         float blue = [protocolor blue];
-                #         FloatValue* alpha_wrapper = [protocolor alpha];
-                #         float alpha = 1.0;
-                #         if (alpha_wrapper != nil) {
-                #           alpha = [alpha_wrapper value];
-                #         }
-                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                #      }
-                #
-                #      static Color* toProto(UIColor* color) {
-                #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                #            return nil;
-                #          }
-                #          Color* result = [[Color alloc] init];
-                #          [result setRed:red];
-                #          [result setGreen:green];
-                #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
-                #            [result setAlpha:floatWrapperWithValue(alpha)];
-                #          }
-                #          [result autorelease];
-                #          return result;
-                #     }
-                #     // ...
-                #
-                #  Example (JavaScript):
-                #
-                #     // ...
-                #
-                #     var protoToCssColor = function(rgb_color) {
-                #        var redFrac = rgb_color.red || 0.0;
-                #        var greenFrac = rgb_color.green || 0.0;
-                #        var blueFrac = rgb_color.blue || 0.0;
-                #        var red = Math.floor(redFrac * 255);
-                #        var green = Math.floor(greenFrac * 255);
-                #        var blue = Math.floor(blueFrac * 255);
-                #
-                #        if (!('alpha' in rgb_color)) {
-                #           return rgbToCssColor_(red, green, blue);
-                #        }
-                #
-                #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                #        var rgbParams = [red, green, blue].join(',');
-                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                #     };
-                #
-                #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                #       var hexString = rgbNumber.toString(16);
-                #       var missingZeros = 6 - hexString.length;
-                #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
-                #          resultBuilder.push('0');
-                #       }
-                #       resultBuilder.push(hexString);
-                #       return resultBuilder.join('');
-                #     };
-                #
-                #     // ...
-              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                  # the final pixel color is defined by the equation:
-                  #
-                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                  #
-                  # This means that a value of 1.0 corresponds to a solid color, whereas
-                  # a value of 0.0 corresponds to a completely transparent color. This
-                  # uses a wrapper message rather than a simple float scalar so that it is
-                  # possible to distinguish between a default value and the value being unset.
-                  # If omitted, this color object is to be rendered as a solid color
-                  # (as if the alpha value had been explicitly given with a value of 1.0).
-              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-            },
-            "hidden": True or False, # True if the sheet is hidden in the UI, false if it's visible.
-            "sheetId": 42, # The ID of the sheet. Must be non-negative.
-                # This field cannot be changed once set.
-          },
-          "filterViews": [ # The filter views in this sheet.
-            { # A filter view.
-              "title": "A String", # The name of the filter view.
-              "namedRangeId": "A String", # The named range this filter view is backed by, if any.
-                  #
-                  # When writing, only one of range or named_range_id
-                  # may be set.
-              "filterViewId": 42, # The ID of the filter view.
-              "range": { # A range on a sheet. # The range this filter view covers.
-                  #
-                  # When writing, only one of range or named_range_id
-                  # may be set.
-                  # All indexes are zero-based.
-                  # Indexes are half open, e.g the start index is inclusive
-                  # and the end index is exclusive -- [start_index, end_index).
-                  # Missing indexes indicate the range is unbounded on that side.
-                  #
-                  # For example, if `"Sheet1"` is sheet ID 0, then:
-                  #
-                  #   `Sheet1!A1:A1 == sheet_id: 0,
-                  #                   start_row_index: 0, end_row_index: 1,
-                  #                   start_column_index: 0, end_column_index: 1`
-                  #
-                  #   `Sheet1!A3:B4 == sheet_id: 0,
-                  #                   start_row_index: 2, end_row_index: 4,
-                  #                   start_column_index: 0, end_column_index: 2`
-                  #
-                  #   `Sheet1!A:B == sheet_id: 0,
-                  #                 start_column_index: 0, end_column_index: 2`
-                  #
-                  #   `Sheet1!A5:B == sheet_id: 0,
-                  #                  start_row_index: 4,
-                  #                  start_column_index: 0, end_column_index: 2`
-                  #
-                  #   `Sheet1 == sheet_id:0`
-                  #
-                  # The start index must always be less than or equal to the end index.
-                  # If the start index equals the end index, then the range is empty.
-                  # Empty ranges are typically not meaningful and are usually rendered in the
-                  # UI as `#REF!`.
-                "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-                "sheetId": 42, # The sheet this range is on.
-                "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-              },
-              "sortSpecs": [ # The sort order per column. Later specifications are used when values
-                  # are equal in the earlier specifications.
-                { # A sort order associated with a specific column or row.
-                  "sortOrder": "A String", # The order data should be sorted.
-                  "dimensionIndex": 42, # The dimension the sort should be applied to.
-                },
-              ],
-              "criteria": { # The criteria for showing/hiding values per column.
-                  # The map's key is the column index, and the value is the criteria for
-                  # that column.
-                "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
-                  "hiddenValues": [ # Values that should be hidden.
-                    "A String",
-                  ],
-                  "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
-                      # (This does not override hiddenValues -- if a value is listed there,
-                      #  it will still be hidden.)
-                      # BooleanConditions are used by conditional formatting,
-                      # data validation, and the criteria in filters.
-                    "values": [ # The values of the condition. The number of supported values depends
-                        # on the condition type.  Some support zero values,
-                        # others one or two values,
-                        # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
-                      { # The value of the condition.
-                        "relativeDate": "A String", # A relative date (based on the current date).
-                            # Valid only if the type is
-                            # DATE_BEFORE,
-                            # DATE_AFTER,
-                            # DATE_ON_OR_BEFORE or
-                            # DATE_ON_OR_AFTER.
-                            #
-                            # Relative dates are not supported in data validation.
-                            # They are supported only in conditional formatting and
-                            # conditional filters.
-                        "userEnteredValue": "A String", # A value the condition is based on.
-                            # The value is parsed as if the user typed into a cell.
-                            # Formulas are supported (and must begin with an `=` or a '+').
-                      },
-                    ],
-                    "type": "A String", # The type of condition.
-                  },
-                },
-              },
-            },
-          ],
-          "charts": [ # The specifications of every chart on this sheet.
-            { # A chart embedded in a sheet.
-              "chartId": 42, # The ID of the chart.
-              "position": { # The position of an embedded object such as a chart. # The position of the chart.
-                "newSheet": True or False, # If true, the embedded object is put on a new sheet whose ID
-                    # is chosen for you. Used only when writing.
-                "sheetId": 42, # The sheet this is on. Set only if the embedded object
-                    # is on its own sheet. Must be non-negative.
-                "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid.
-                  "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to.
-                      # All indexes are zero-based.
-                    "rowIndex": 42, # The row index of the coordinate.
-                    "columnIndex": 42, # The column index of the coordinate.
-                    "sheetId": 42, # The sheet this coordinate is on.
-                  },
-                  "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
-                  "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
-                      # from the anchor cell.
-                  "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
-                      # from the anchor cell.
-                  "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
-                },
-              },
-              "spec": { # The specifications of a chart. # The specification of the chart.
-                "fontName": "A String", # The name of the font to use by default for all chart text (e.g. title,
-                    # axis labels, legend).  If a font is specified for a specific part of the
-                    # chart it will override this font name.
-                "altText": "A String", # The alternative text that describes the chart.  This is often used
-                    # for accessibility.
-                "subtitle": "A String", # The subtitle of the chart.
-                "subtitleTextFormat": { # The format of a run of text in a cell. # The subtitle text format.
-                    # Strikethrough and underline are not supported.
-                    # Absent values indicate that the field isn't specified.
-                  "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                "foregroundColorStyle": { # A color value. # The foreground color to sort by; cells with this foreground color are
+                    # sorted to the top. Mutually exclusive with background_color, and must
+                    # be an RGB-type color. If foreground_color is also set, this field takes
+                    # precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
                       # for simplicity of conversion to/from color representations in various
                       # languages over compactness; for example, the fields of this representation
                       # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -28740,14 +54722,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -28777,11 +54759,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -28804,12 +54786,3564 @@
                     "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
-                  "bold": True or False, # True if the text is bold.
-                  "strikethrough": True or False, # True if the text has a strikethrough.
-                  "fontFamily": "A String", # The font family.
-                  "fontSize": 42, # The size of the font.
-                  "italic": True or False, # True if the text is italicized.
-                  "underline": True or False, # True if the text is underlined.
+                },
+                "backgroundColorStyle": { # A color value. # The background fill color to sort by; cells with this fill color are sorted
+                    # to the top. Mutually exclusive with foreground_color, and must be an
+                    # RGB-type color. If background_color is also set, this field takes
+                    # precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "sortOrder": "A String", # The order data should be sorted.
+                "dimensionIndex": 42, # The dimension the sort should be applied to.
+              },
+            ],
+            "criteria": { # The criteria for showing/hiding values per column.
+                # The map's key is the column index, and the value is the criteria for
+                # that column.
+              "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
+                "visibleBackgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to filter by; only cells with this fill color are
+                    # shown. Mutually exclusive with visible_foreground_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "hiddenValues": [ # Values that should be hidden.
+                  "A String",
+                ],
+                "visibleBackgroundColorStyle": { # A color value. # The background fill color to filter by; only cells with this fill color are
+                    # shown. This field is mutually exclusive with visible_foreground_color,
+                    # and must be set to an RGB-type color. If visible_background_color is
+                    # also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColorStyle": { # A color value. # The foreground color to filter by; only cells with this foreground color
+                    # are shown. This field is mutually exclusive with
+                    # visible_background_color, and must be set to an RGB-type color. If
+                    # visible_foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to filter by; only cells with this foreground color
+                    # are shown. Mutually exclusive with visible_background_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
+                    # (This does not override hidden_values -- if a value is listed there,
+                    #  it will still be hidden.)
+                    # BooleanConditions are used by conditional formatting,
+                    # data validation, and the criteria in filters.
+                  "values": [ # The values of the condition. The number of supported values depends
+                      # on the condition type.  Some support zero values,
+                      # others one or two values,
+                      # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                    { # The value of the condition.
+                      "relativeDate": "A String", # A relative date (based on the current date).
+                          # Valid only if the type is
+                          # DATE_BEFORE,
+                          # DATE_AFTER,
+                          # DATE_ON_OR_BEFORE or
+                          # DATE_ON_OR_AFTER.
+                          #
+                          # Relative dates are not supported in data validation.
+                          # They are supported only in conditional formatting and
+                          # conditional filters.
+                      "userEnteredValue": "A String", # A value the condition is based on.
+                          # The value is parsed as if the user typed into a cell.
+                          # Formulas are supported (and must begin with an `=` or a '+').
+                    },
+                  ],
+                  "type": "A String", # The type of condition.
+                },
+              },
+            },
+          },
+          "developerMetadata": [ # The developer metadata associated with a sheet.
+            { # Developer metadata associated with a location or object in a spreadsheet.
+                # Developer metadata may be used to associate arbitrary data with various
+                # parts of a spreadsheet and will remain associated at those locations as they
+                # move around and the spreadsheet is edited.  For example, if developer
+                # metadata is associated with row 5 and another row is then subsequently
+                # inserted above row 5, that original metadata will still be associated with
+                # the row it was first associated with (what is now row 6). If the associated
+                # object is deleted its metadata is deleted too.
+              "metadataId": 42, # The spreadsheet-scoped unique ID that identifies the metadata. IDs may be
+                  # specified when metadata is created, otherwise one will be randomly
+                  # generated and assigned. Must be positive.
+              "metadataValue": "A String", # Data associated with the metadata's key.
+              "location": { # A location where metadata may be associated in a spreadsheet. # The location where the metadata is associated.
+                "locationType": "A String", # The type of location this object represents.  This field is read-only.
+                "dimensionRange": { # A range along a single dimension on a sheet. # Represents the row or column when metadata is associated with
+                    # a dimension. The specified DimensionRange must represent a single row
+                    # or column; it cannot be unbounded or span multiple rows or columns.
+                    # All indexes are zero-based.
+                    # Indexes are half open: the start index is inclusive
+                    # and the end index is exclusive.
+                    # Missing indexes indicate the range is unbounded on that side.
+                  "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
+                  "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
+                  "sheetId": 42, # The sheet this span is on.
+                  "dimension": "A String", # The dimension of the span.
+                },
+                "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+                "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
+              },
+              "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
+                  # specified.
+              "metadataKey": "A String", # The metadata key. There may be multiple metadata in a spreadsheet with the
+                  # same key.  Developer metadata must always have a key specified.
+            },
+          ],
+          "conditionalFormats": [ # The conditional format rules in this sheet.
+            { # A rule describing a conditional format.
+              "ranges": [ # The ranges that are formatted if the condition is true.
+                  # All the ranges must be on the same grid.
+                { # A range on a sheet.
+                    # All indexes are zero-based.
+                    # Indexes are half open, e.g the start index is inclusive
+                    # and the end index is exclusive -- [start_index, end_index).
+                    # Missing indexes indicate the range is unbounded on that side.
+                    #
+                    # For example, if `"Sheet1"` is sheet ID 0, then:
+                    #
+                    #   `Sheet1!A1:A1 == sheet_id: 0,
+                    #                   start_row_index: 0, end_row_index: 1,
+                    #                   start_column_index: 0, end_column_index: 1`
+                    #
+                    #   `Sheet1!A3:B4 == sheet_id: 0,
+                    #                   start_row_index: 2, end_row_index: 4,
+                    #                   start_column_index: 0, end_column_index: 2`
+                    #
+                    #   `Sheet1!A:B == sheet_id: 0,
+                    #                 start_column_index: 0, end_column_index: 2`
+                    #
+                    #   `Sheet1!A5:B == sheet_id: 0,
+                    #                  start_row_index: 4,
+                    #                  start_column_index: 0, end_column_index: 2`
+                    #
+                    #   `Sheet1 == sheet_id:0`
+                    #
+                    # The start index must always be less than or equal to the end index.
+                    # If the start index equals the end index, then the range is empty.
+                    # Empty ranges are typically not meaningful and are usually rendered in the
+                    # UI as `#REF!`.
+                  "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                  "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                  "sheetId": 42, # The sheet this range is on.
+                  "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                  "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                },
+              ],
+              "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
+                "condition": { # A condition that can evaluate to true or false. # The condition of the rule. If the condition evaluates to true,
+                    # the format is applied.
+                    # BooleanConditions are used by conditional formatting,
+                    # data validation, and the criteria in filters.
+                  "values": [ # The values of the condition. The number of supported values depends
+                      # on the condition type.  Some support zero values,
+                      # others one or two values,
+                      # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                    { # The value of the condition.
+                      "relativeDate": "A String", # A relative date (based on the current date).
+                          # Valid only if the type is
+                          # DATE_BEFORE,
+                          # DATE_AFTER,
+                          # DATE_ON_OR_BEFORE or
+                          # DATE_ON_OR_AFTER.
+                          #
+                          # Relative dates are not supported in data validation.
+                          # They are supported only in conditional formatting and
+                          # conditional filters.
+                      "userEnteredValue": "A String", # A value the condition is based on.
+                          # The value is parsed as if the user typed into a cell.
+                          # Formulas are supported (and must begin with an `=` or a '+').
+                    },
+                  ],
+                  "type": "A String", # The type of condition.
+                },
+                "format": { # The format of a cell. # The format to apply.
+                    # Conditional formatting can only apply a subset of formatting:
+                    # bold, italic,
+                    # strikethrough,
+                    # foreground color &amp;
+                    # background color.
+                  "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                      # When updating padding, every field must be specified.
+                    "top": 42, # The top padding of the cell.
+                    "left": 42, # The left padding of the cell.
+                    "right": 42, # The right padding of the cell.
+                    "bottom": 42, # The bottom padding of the cell.
+                  },
+                  "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
+                    "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
+                        # the user's locale will be used if necessary for the given type.
+                        # See the [Date and Number Formats guide](/sheets/api/guides/formats) for
+                        # more information about the supported patterns.
+                    "type": "A String", # The type of the number format.
+                        # When writing, this field must be set.
+                  },
+                  "textDirection": "A String", # The direction of the text in the cell.
+                  "backgroundColorStyle": { # A color value. # The background color of the cell.
+                      # If background_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
+                  "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                  "borders": { # The borders of the cell. # The borders of the cell.
+                    "top": { # A border along a cell. # The top border of the cell.
+                      "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                      "width": 42, # The width of the border, in pixels.
+                          # Deprecated; the width is determined by the "style" field.
+                      "colorStyle": { # A color value. # The color of the border.
+                          # If color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
+                      "style": "A String", # The style of the border.
+                    },
+                    "left": { # A border along a cell. # The left border of the cell.
+                      "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                      "width": 42, # The width of the border, in pixels.
+                          # Deprecated; the width is determined by the "style" field.
+                      "colorStyle": { # A color value. # The color of the border.
+                          # If color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
+                      "style": "A String", # The style of the border.
+                    },
+                    "right": { # A border along a cell. # The right border of the cell.
+                      "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                      "width": 42, # The width of the border, in pixels.
+                          # Deprecated; the width is determined by the "style" field.
+                      "colorStyle": { # A color value. # The color of the border.
+                          # If color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
+                      "style": "A String", # The style of the border.
+                    },
+                    "bottom": { # A border along a cell. # The bottom border of the cell.
+                      "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                      "width": 42, # The width of the border, in pixels.
+                          # Deprecated; the width is determined by the "style" field.
+                      "colorStyle": { # A color value. # The color of the border.
+                          # If color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
+                      "style": "A String", # The style of the border.
+                    },
+                  },
+                  "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                    "angle": 42, # The angle between the standard orientation and the desired orientation.
+                        # Measured in degrees. Valid values are between -90 and 90. Positive
+                        # angles are angled upwards, negative are angled downwards.
+                        #
+                        # Note: For LTR text direction positive angles are in the
+                        # counterclockwise direction, whereas for RTL they are in the clockwise
+                        # direction
+                    "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                        # characters is unchanged.
+                        # For example:
+                        #
+                        #     | V |
+                        #     | e |
+                        #     | r |
+                        #     | t |
+                        #     | i |
+                        #     | c |
+                        #     | a |
+                        #     | l |
+                  },
+                  "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
+                  "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
+                      # Absent values indicate that the field isn't specified.
+                    "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "bold": True or False, # True if the text is bold.
+                    "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                        # If foreground_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "strikethrough": True or False, # True if the text has a strikethrough.
+                    "fontFamily": "A String", # The font family.
+                    "fontSize": 42, # The size of the font.
+                    "italic": True or False, # True if the text is italicized.
+                    "underline": True or False, # True if the text is underlined.
+                  },
+                  "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+                },
+              },
+              "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule.
+                  # the interpolation points listed. The format of a cell will vary
+                  # based on its contents as compared to the values of the interpolation
+                  # points.
+                "maxpoint": { # A single interpolation point on a gradient conditional format. # The final interpolation point.
+                    # These pin the gradient color scale according to the color,
+                    # type and value chosen.
+                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "colorStyle": { # A color value. # The color this interpolation point should use.
+                      # If color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "type": "A String", # How the value should be interpreted.
+                  "value": "A String", # The value this interpolation point uses.  May be a formula.
+                      # Unused if type is MIN or
+                      # MAX.
+                },
+                "midpoint": { # A single interpolation point on a gradient conditional format. # An optional midway interpolation point.
+                    # These pin the gradient color scale according to the color,
+                    # type and value chosen.
+                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "colorStyle": { # A color value. # The color this interpolation point should use.
+                      # If color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "type": "A String", # How the value should be interpreted.
+                  "value": "A String", # The value this interpolation point uses.  May be a formula.
+                      # Unused if type is MIN or
+                      # MAX.
+                },
+                "minpoint": { # A single interpolation point on a gradient conditional format. # The starting interpolation point.
+                    # These pin the gradient color scale according to the color,
+                    # type and value chosen.
+                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "colorStyle": { # A color value. # The color this interpolation point should use.
+                      # If color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "type": "A String", # How the value should be interpreted.
+                  "value": "A String", # The value this interpolation point uses.  May be a formula.
+                      # Unused if type is MIN or
+                      # MAX.
+                },
+              },
+            },
+          ],
+          "charts": [ # The specifications of every chart on this sheet.
+            { # A chart embedded in a sheet.
+              "chartId": 42, # The ID of the chart.
+              "position": { # The position of an embedded object such as a chart. # The position of the chart.
+                "newSheet": True or False, # If true, the embedded object is put on a new sheet whose ID
+                    # is chosen for you. Used only when writing.
+                "sheetId": 42, # The sheet this is on. Set only if the embedded object
+                    # is on its own sheet. Must be non-negative.
+                "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid.
+                  "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to.
+                      # All indexes are zero-based.
+                    "rowIndex": 42, # The row index of the coordinate.
+                    "columnIndex": 42, # The column index of the coordinate.
+                    "sheetId": 42, # The sheet this coordinate is on.
+                  },
+                  "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
+                      # from the anchor cell.
+                  "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
+                  "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
+                      # from the anchor cell.
+                  "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
+                },
+              },
+              "spec": { # The specifications of a chart. # The specification of the chart.
+                "fontName": "A String", # The name of the font to use by default for all chart text (e.g. title,
+                    # axis labels, legend).  If a font is specified for a specific part of the
+                    # chart it will override this font name.
+                "altText": "A String", # The alternative text that describes the chart.  This is often used
+                    # for accessibility.
+                "subtitle": "A String", # The subtitle of the chart.
+                "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the entire chart.
+                    # Not applicable to Org charts.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
                 "title": "A String", # The title of the chart.
                 "titleTextFormat": { # The format of a run of text in a cell. # The title text format.
@@ -28885,14 +58419,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -28922,11 +58456,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -28950,20 +58484,158 @@
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
                   "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "strikethrough": True or False, # True if the text has a strikethrough.
                   "fontFamily": "A String", # The font family.
                   "fontSize": 42, # The size of the font.
                   "italic": True or False, # True if the text is italicized.
                   "underline": True or False, # True if the text is underlined.
                 },
-                "treemapChart": { # A <a href="/chart/interactive/docs/gallery/treemap">Treemap chart</a>. # A treemap chart specification.
+                "treemapChart": { # A &lt;a href="/chart/interactive/docs/gallery/treemap"&gt;Treemap chart&lt;/a&gt;. # A treemap chart specification.
                   "parentLabels": { # The data included in a domain or series. # The data the contains the treemap cells' parent labels.
                     "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                       "sources": [ # The ranges of data for a series or domain.
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -29015,66 +58687,139 @@
                       ],
                     },
                   },
-                  "sizeData": { # The data included in a domain or series. # The data that determines the size of each treemap data cell. This data is
-                      # expected to be numeric. The cells corresponding to non-numeric or missing
-                      # data will not be rendered. If color_data is not specified, this data
-                      # is used to determine data cell background colors as well.
-                    "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
-                      "sources": [ # The ranges of data for a series or domain.
-                          # Exactly one dimension must have a length of 1,
-                          # and all sources in the list must have the same dimension
-                          # with length 1.
-                          # The domain (if it exists) & all series must have the same number
-                          # of source ranges. If using more than one source range, then the source
-                          # range at a given offset must be in order and contiguous across the domain
-                          # and series.
-                          #
-                          # For example, these are valid configurations:
-                          #
-                          #     domain sources: A1:A5
-                          #     series1 sources: B1:B5
-                          #     series2 sources: D6:D10
-                          #
-                          #     domain sources: A1:A5, C10:C12
-                          #     series1 sources: B1:B5, D10:D12
-                          #     series2 sources: C1:C5, E10:E12
-                        { # A range on a sheet.
-                            # All indexes are zero-based.
-                            # Indexes are half open, e.g the start index is inclusive
-                            # and the end index is exclusive -- [start_index, end_index).
-                            # Missing indexes indicate the range is unbounded on that side.
-                            #
-                            # For example, if `"Sheet1"` is sheet ID 0, then:
-                            #
-                            #   `Sheet1!A1:A1 == sheet_id: 0,
-                            #                   start_row_index: 0, end_row_index: 1,
-                            #                   start_column_index: 0, end_column_index: 1`
-                            #
-                            #   `Sheet1!A3:B4 == sheet_id: 0,
-                            #                   start_row_index: 2, end_row_index: 4,
-                            #                   start_column_index: 0, end_column_index: 2`
-                            #
-                            #   `Sheet1!A:B == sheet_id: 0,
-                            #                 start_column_index: 0, end_column_index: 2`
-                            #
-                            #   `Sheet1!A5:B == sheet_id: 0,
-                            #                  start_row_index: 4,
-                            #                  start_column_index: 0, end_column_index: 2`
-                            #
-                            #   `Sheet1 == sheet_id:0`
-                            #
-                            # The start index must always be less than or equal to the end index.
-                            # If the start index equals the end index, then the range is empty.
-                            # Empty ranges are typically not meaningful and are usually rendered in the
-                            # UI as `#REF!`.
-                          "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-                          "sheetId": 42, # The sheet this range is on.
-                          "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-                        },
-                      ],
-                    },
+                  "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for header cells.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
                   "hideTooltips": True or False, # True to hide tooltips.
                   "colorScale": { # A color scale for a treemap chart. # The color scale for data cells in the treemap chart. Data cells are
@@ -29093,6 +58838,142 @@
                       # Cells with missing or non-numeric color values will have
                       # noDataColor as their background
                       # color.
+                    "maxValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value greater than or equal
+                        # to maxValue. Defaults to #109618 if not
+                        # specified.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
                     "noDataColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells that have no color data associated with
                         # them. Defaults to #000000 if not specified.
                         # for simplicity of conversion to/from color representations in various
@@ -29164,14 +59045,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -29201,11 +59082,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -29228,6 +59109,562 @@
                       "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                       "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                     },
+                    "midValueColorStyle": { # A color value. # The background color for cells with a color value at the midpoint between
+                        # minValue and
+                        # maxValue. Defaults to #efe6dc if not
+                        # specified.
+                        # If mid_value_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "maxValueColorStyle": { # A color value. # The background color for cells with a color value greater than or equal
+                        # to maxValue. Defaults to #109618 if not
+                        # specified.
+                        # If max_value_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "minValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value less than or equal to
+                        # minValue. Defaults to #dc3912 if not
+                        # specified.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "noDataColorStyle": { # A color value. # The background color for cells that have no color data associated with
+                        # them. Defaults to #000000 if not specified.
+                        # If no_data_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
                     "midValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value at the midpoint between
                         # minValue and
                         # maxValue. Defaults to #efe6dc if not
@@ -29301,14 +59738,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -29338,11 +59775,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -29365,277 +59802,145 @@
                       "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                       "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                     },
-                    "minValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value less than or equal to
+                    "minValueColorStyle": { # A color value. # The background color for cells with a color value less than or equal to
                         # minValue. Defaults to #dc3912 if not
                         # specified.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
+                        # If min_value_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
                           #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
                           #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                    },
-                    "maxValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value greater than or equal
-                        # to maxValue. Defaults to #109618 if not
-                        # specified.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
+                          # Example (Java):
                           #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #      import com.google.type.Color;
                           #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
                     },
                   },
                   "labels": { # The data included in a domain or series. # The data that contains the treemap cell labels.
@@ -29644,7 +59949,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -29706,7 +60011,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -29762,147 +60067,74 @@
                       # have the same color as cells with this value. If not specified, defaults
                       # to the actual maximum value from color_data, or the maximum value from
                       # size_data if color_data is not specified.
+                  "levels": 42, # The number of data levels to show on the treemap chart. These levels are
+                      # interactive and are shown with their labels. Defaults to 2 if not
+                      # specified.
                   "minValue": 3.14, # The minimum possible data value. Cells with values less than this will
                       # have the same color as cells with this value. If not specified, defaults
                       # to the actual minimum value from color_data, or the minimum value from
                       # size_data if color_data is not specified.
-                  "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for header cells.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
-                        #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                        #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  "sizeData": { # The data included in a domain or series. # The data that determines the size of each treemap data cell. This data is
+                      # expected to be numeric. The cells corresponding to non-numeric or missing
+                      # data will not be rendered. If color_data is not specified, this data
+                      # is used to determine data cell background colors as well.
+                    "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                      "sources": [ # The ranges of data for a series or domain.
+                          # Exactly one dimension must have a length of 1,
+                          # and all sources in the list must have the same dimension
+                          # with length 1.
+                          # The domain (if it exists) &amp; all series must have the same number
+                          # of source ranges. If using more than one source range, then the source
+                          # range at a given offset must be in order and contiguous across the domain
+                          # and series.
+                          #
+                          # For example, these are valid configurations:
+                          #
+                          #     domain sources: A1:A5
+                          #     series1 sources: B1:B5
+                          #     series2 sources: D6:D10
+                          #
+                          #     domain sources: A1:A5, C10:C12
+                          #     series1 sources: B1:B5, D10:D12
+                          #     series2 sources: C1:C5, E10:E12
+                        { # A range on a sheet.
+                            # All indexes are zero-based.
+                            # Indexes are half open, e.g the start index is inclusive
+                            # and the end index is exclusive -- [start_index, end_index).
+                            # Missing indexes indicate the range is unbounded on that side.
+                            #
+                            # For example, if `"Sheet1"` is sheet ID 0, then:
+                            #
+                            #   `Sheet1!A1:A1 == sheet_id: 0,
+                            #                   start_row_index: 0, end_row_index: 1,
+                            #                   start_column_index: 0, end_column_index: 1`
+                            #
+                            #   `Sheet1!A3:B4 == sheet_id: 0,
+                            #                   start_row_index: 2, end_row_index: 4,
+                            #                   start_column_index: 0, end_column_index: 2`
+                            #
+                            #   `Sheet1!A:B == sheet_id: 0,
+                            #                 start_column_index: 0, end_column_index: 2`
+                            #
+                            #   `Sheet1!A5:B == sheet_id: 0,
+                            #                  start_row_index: 4,
+                            #                  start_column_index: 0, end_column_index: 2`
+                            #
+                            #   `Sheet1 == sheet_id:0`
+                            #
+                            # The start index must always be less than or equal to the end index.
+                            # If the start index equals the end index, then the range is empty.
+                            # Empty ranges are typically not meaningful and are usually rendered in the
+                            # UI as `#REF!`.
+                          "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                          "sheetId": 42, # The sheet this range is on.
+                          "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                        },
+                      ],
+                    },
                   },
-                  "levels": 42, # The number of data levels to show on the treemap chart. These levels are
-                      # interactive and are shown with their labels. Defaults to 2 if not
-                      # specified.
                   "hintedLevels": 42, # The number of additional data levels beyond the labeled levels to be shown
                       # on the treemap chart. These levels are not interactive and are shown
                       # without their labels. Defaults to 0 if not specified.
@@ -29978,14 +60210,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -30015,11 +60247,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -30043,26 +60275,1706 @@
                       "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                     },
                     "bold": True or False, # True if the text is bold.
+                    "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                        # If foreground_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
                     "strikethrough": True or False, # True if the text has a strikethrough.
                     "fontFamily": "A String", # The font family.
                     "fontSize": 42, # The size of the font.
                     "italic": True or False, # True if the text is italicized.
                     "underline": True or False, # True if the text is underlined.
                   },
+                  "headerColorStyle": { # A color value. # The background color for header cells.
+                      # If header_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                },
+                "scorecardChart": { # A scorecard chart. Scorecard charts are used to highlight key performance # A scorecard chart specification.
+                    # indicators, known as KPIs, on the spreadsheet. A scorecard chart can
+                    # represent things like total sales, average cost, or a top selling item. You
+                    # can specify a single data value, or aggregate over a range of data.
+                    # Percentage or absolute difference from a baseline value can be highlighted,
+                    # like changes over time.
+                  "numberFormatSource": "A String", # The number format source used in the scorecard chart.
+                      # This field is optional.
+                  "customFormatOptions": { # Custom number formatting options for chart attributes. # Custom formatting options for numeric key/baseline values in scorecard
+                      # chart. This field is used only when number_format_source is set to
+                      # CUSTOM. This field is optional.
+                    "prefix": "A String", # Custom prefix to be prepended to the chart attribute.
+                        # This field is optional.
+                    "suffix": "A String", # Custom suffix to be appended to the chart attribute.
+                        # This field is optional.
+                  },
+                  "keyValueFormat": { # Formatting options for key value. # Formatting options for key value.
+                    "position": { # Position settings for text. # Specifies the horizontal text positioning of key value.
+                        # This field is optional. If not specified, default positioning is used.
+                      "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
+                    },
+                    "textFormat": { # The format of a run of text in a cell. # Text formatting options for key value.
+                        # Absent values indicate that the field isn't specified.
+                      "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                      "bold": True or False, # True if the text is bold.
+                      "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                          # If foreground_color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
+                      "strikethrough": True or False, # True if the text has a strikethrough.
+                      "fontFamily": "A String", # The font family.
+                      "fontSize": 42, # The size of the font.
+                      "italic": True or False, # True if the text is italicized.
+                      "underline": True or False, # True if the text is underlined.
+                    },
+                  },
+                  "aggregateType": "A String", # The aggregation type for key and baseline chart data in scorecard chart.
+                      # This field is optional.
+                  "baselineValueFormat": { # Formatting options for baseline value. # Formatting options for baseline value.
+                      # This field is needed only if baseline_value_data is specified.
+                    "description": "A String", # Description which is appended after the baseline value.
+                        # This field is optional.
+                    "negativeColor": { # Represents a color in the RGBA color space. This representation is designed # Color to be used, in case baseline value represents a negative change for
+                        # key value. This field is optional.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "comparisonType": "A String", # The comparison type of key value with baseline value.
+                    "positiveColorStyle": { # A color value. # Color to be used, in case baseline value represents a positive change for
+                        # key value. This field is optional.
+                        # If positive_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "negativeColorStyle": { # A color value. # Color to be used, in case baseline value represents a negative change for
+                        # key value. This field is optional.
+                        # If negative_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "position": { # Position settings for text. # Specifies the horizontal text positioning of baseline value.
+                        # This field is optional. If not specified, default positioning is used.
+                      "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
+                    },
+                    "textFormat": { # The format of a run of text in a cell. # Text formatting options for baseline value.
+                        # Absent values indicate that the field isn't specified.
+                      "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                      "bold": True or False, # True if the text is bold.
+                      "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                          # If foreground_color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
+                      "strikethrough": True or False, # True if the text has a strikethrough.
+                      "fontFamily": "A String", # The font family.
+                      "fontSize": 42, # The size of the font.
+                      "italic": True or False, # True if the text is italicized.
+                      "underline": True or False, # True if the text is underlined.
+                    },
+                    "positiveColor": { # Represents a color in the RGBA color space. This representation is designed # Color to be used, in case baseline value represents a positive change for
+                        # key value. This field is optional.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "keyValueData": { # The data included in a domain or series. # The data for scorecard key value.
+                    "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                      "sources": [ # The ranges of data for a series or domain.
+                          # Exactly one dimension must have a length of 1,
+                          # and all sources in the list must have the same dimension
+                          # with length 1.
+                          # The domain (if it exists) &amp; all series must have the same number
+                          # of source ranges. If using more than one source range, then the source
+                          # range at a given offset must be in order and contiguous across the domain
+                          # and series.
+                          #
+                          # For example, these are valid configurations:
+                          #
+                          #     domain sources: A1:A5
+                          #     series1 sources: B1:B5
+                          #     series2 sources: D6:D10
+                          #
+                          #     domain sources: A1:A5, C10:C12
+                          #     series1 sources: B1:B5, D10:D12
+                          #     series2 sources: C1:C5, E10:E12
+                        { # A range on a sheet.
+                            # All indexes are zero-based.
+                            # Indexes are half open, e.g the start index is inclusive
+                            # and the end index is exclusive -- [start_index, end_index).
+                            # Missing indexes indicate the range is unbounded on that side.
+                            #
+                            # For example, if `"Sheet1"` is sheet ID 0, then:
+                            #
+                            #   `Sheet1!A1:A1 == sheet_id: 0,
+                            #                   start_row_index: 0, end_row_index: 1,
+                            #                   start_column_index: 0, end_column_index: 1`
+                            #
+                            #   `Sheet1!A3:B4 == sheet_id: 0,
+                            #                   start_row_index: 2, end_row_index: 4,
+                            #                   start_column_index: 0, end_column_index: 2`
+                            #
+                            #   `Sheet1!A:B == sheet_id: 0,
+                            #                 start_column_index: 0, end_column_index: 2`
+                            #
+                            #   `Sheet1!A5:B == sheet_id: 0,
+                            #                  start_row_index: 4,
+                            #                  start_column_index: 0, end_column_index: 2`
+                            #
+                            #   `Sheet1 == sheet_id:0`
+                            #
+                            # The start index must always be less than or equal to the end index.
+                            # If the start index equals the end index, then the range is empty.
+                            # Empty ranges are typically not meaningful and are usually rendered in the
+                            # UI as `#REF!`.
+                          "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                          "sheetId": 42, # The sheet this range is on.
+                          "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                        },
+                      ],
+                    },
+                  },
+                  "scaleFactor": 3.14, # Value to scale scorecard key and baseline value. For example, a factor of
+                      # 10 can be used to divide all values in the chart by 10.
+                      # This field is optional.
+                  "baselineValueData": { # The data included in a domain or series. # The data for scorecard baseline value.
+                      # This field is optional.
+                    "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                      "sources": [ # The ranges of data for a series or domain.
+                          # Exactly one dimension must have a length of 1,
+                          # and all sources in the list must have the same dimension
+                          # with length 1.
+                          # The domain (if it exists) &amp; all series must have the same number
+                          # of source ranges. If using more than one source range, then the source
+                          # range at a given offset must be in order and contiguous across the domain
+                          # and series.
+                          #
+                          # For example, these are valid configurations:
+                          #
+                          #     domain sources: A1:A5
+                          #     series1 sources: B1:B5
+                          #     series2 sources: D6:D10
+                          #
+                          #     domain sources: A1:A5, C10:C12
+                          #     series1 sources: B1:B5, D10:D12
+                          #     series2 sources: C1:C5, E10:E12
+                        { # A range on a sheet.
+                            # All indexes are zero-based.
+                            # Indexes are half open, e.g the start index is inclusive
+                            # and the end index is exclusive -- [start_index, end_index).
+                            # Missing indexes indicate the range is unbounded on that side.
+                            #
+                            # For example, if `"Sheet1"` is sheet ID 0, then:
+                            #
+                            #   `Sheet1!A1:A1 == sheet_id: 0,
+                            #                   start_row_index: 0, end_row_index: 1,
+                            #                   start_column_index: 0, end_column_index: 1`
+                            #
+                            #   `Sheet1!A3:B4 == sheet_id: 0,
+                            #                   start_row_index: 2, end_row_index: 4,
+                            #                   start_column_index: 0, end_column_index: 2`
+                            #
+                            #   `Sheet1!A:B == sheet_id: 0,
+                            #                 start_column_index: 0, end_column_index: 2`
+                            #
+                            #   `Sheet1!A5:B == sheet_id: 0,
+                            #                  start_row_index: 4,
+                            #                  start_column_index: 0, end_column_index: 2`
+                            #
+                            #   `Sheet1 == sheet_id:0`
+                            #
+                            # The start index must always be less than or equal to the end index.
+                            # If the start index equals the end index, then the range is empty.
+                            # Empty ranges are typically not meaningful and are usually rendered in the
+                            # UI as `#REF!`.
+                          "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                          "sheetId": 42, # The sheet this range is on.
+                          "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                        },
+                      ],
+                    },
+                  },
                 },
                 "titleTextPosition": { # Position settings for text. # The title text position.
                     # This field is optional.
                   "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
                 },
+                "backgroundColorStyle": { # A color value. # The background color of the entire chart.
+                    # Not applicable to Org charts.
+                    # If background_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "hiddenDimensionStrategy": "A String", # Determines how the charts will use hidden rows or columns.
-                "pieChart": { # A <a href="/chart/interactive/docs/gallery/piechart">pie chart</a>. # A pie chart specification.
+                "pieChart": { # A &lt;a href="/chart/interactive/docs/gallery/piechart"&gt;pie chart&lt;/a&gt;. # A pie chart specification.
                   "series": { # The data included in a domain or series. # The data that covers the one and only series of the pie chart.
                     "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                       "sources": [ # The ranges of data for a series or domain.
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -30120,7 +62032,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -30176,8 +62088,8 @@
                   "legendPosition": "A String", # Where the legend of the pie chart should be drawn.
                   "pieHole": 3.14, # The size of the hole in the pie chart.
                 },
-                "candlestickChart": { # A <a href="/chart/interactive/docs/gallery/candlestickchart">candlestick # A candlestick chart specification.
-                    # chart</a>.
+                "candlestickChart": { # A &lt;a href="/chart/interactive/docs/gallery/candlestickchart"&gt;candlestick # A candlestick chart specification.
+                    # chart&lt;/a&gt;.
                   "domain": { # The domain of a CandlestickChart. # The domain data (horizontal axis) for the candlestick chart.  String data
                       # will be treated as discrete labels, other data will be treated as
                       # continuous values.
@@ -30188,7 +62100,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -30253,7 +62165,7 @@
                                 # Exactly one dimension must have a length of 1,
                                 # and all sources in the list must have the same dimension
                                 # with length 1.
-                                # The domain (if it exists) & all series must have the same number
+                                # The domain (if it exists) &amp; all series must have the same number
                                 # of source ranges. If using more than one source range, then the source
                                 # range at a given offset must be in order and contiguous across the domain
                                 # and series.
@@ -30314,7 +62226,7 @@
                                 # Exactly one dimension must have a length of 1,
                                 # and all sources in the list must have the same dimension
                                 # with length 1.
-                                # The domain (if it exists) & all series must have the same number
+                                # The domain (if it exists) &amp; all series must have the same number
                                 # of source ranges. If using more than one source range, then the source
                                 # range at a given offset must be in order and contiguous across the domain
                                 # and series.
@@ -30376,7 +62288,7 @@
                                 # Exactly one dimension must have a length of 1,
                                 # and all sources in the list must have the same dimension
                                 # with length 1.
-                                # The domain (if it exists) & all series must have the same number
+                                # The domain (if it exists) &amp; all series must have the same number
                                 # of source ranges. If using more than one source range, then the source
                                 # range at a given offset must be in order and contiguous across the domain
                                 # and series.
@@ -30438,7 +62350,7 @@
                                 # Exactly one dimension must have a length of 1,
                                 # and all sources in the list must have the same dimension
                                 # with length 1.
-                                # The domain (if it exists) & all series must have the same number
+                                # The domain (if it exists) &amp; all series must have the same number
                                 # of source ranges. If using more than one source range, then the source
                                 # range at a given offset must be in order and contiguous across the domain
                                 # and series.
@@ -30498,140 +62410,287 @@
                     # This field is optional.
                   "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
                 },
-                "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the entire chart.
-                    # Not applicable to Org charts.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
+                "subtitleTextFormat": { # The format of a run of text in a cell. # The subtitle text format.
+                    # Strikethrough and underline are not supported.
+                    # Absent values indicate that the field isn't specified.
+                  "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
                       #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
                       #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "strikethrough": True or False, # True if the text has a strikethrough.
+                  "fontFamily": "A String", # The font family.
+                  "fontSize": 42, # The size of the font.
+                  "italic": True or False, # True if the text is italicized.
+                  "underline": True or False, # True if the text is underlined.
                 },
                 "maximized": True or False, # True to make a chart fill the entire space in which it's rendered with
                     # minimum padding.  False to use the default padding.
@@ -30647,7 +62706,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -30780,14 +62839,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -30817,11 +62876,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -30844,6 +62903,144 @@
                           "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                           "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                         },
+                        "colorStyle": { # A color value. # The color of the column.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
                         "label": "A String", # The label of the column's legend.
                       },
                       "subtotalColumnsStyle": { # Styles for a waterfall chart column. # Styles for all subtotal columns in this series.
@@ -30917,14 +63114,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -30954,11 +63151,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -30981,6 +63178,144 @@
                           "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                           "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                         },
+                        "colorStyle": { # A color value. # The color of the column.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
                         "label": "A String", # The label of the column's legend.
                       },
                       "negativeColumnsStyle": { # Styles for a waterfall chart column. # Styles for all columns in this series with negative values.
@@ -31054,14 +63389,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -31091,11 +63426,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -31118,6 +63453,144 @@
                           "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                           "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                         },
+                        "colorStyle": { # A color value. # The color of the column.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
                         "label": "A String", # The label of the column's legend.
                       },
                       "customSubtotals": [ # Custom subtotal columns appearing in this series. The order in which
@@ -31143,7 +63616,7 @@
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -31205,6 +63678,8 @@
                     # of charts this supports.
                   "stackedType": "A String", # The stacked type for charts that support vertical stacking.
                       # Applies to Area, Bar, Column, Combo, and Stepped Area charts.
+                  "compareMode": "A String", # The behavior of tooltips and data highlighting when hovering on data and
+                      # chart area.
                   "headerCount": 42, # The number of rows or columns in the data that are "headers".
                       # If not set, Google Sheets will guess how many rows are headers based
                       # on the data.
@@ -31215,8 +63690,147 @@
                     { # A single series of data in a chart.
                         # For example, if charting stock prices over time, multiple series may exist,
                         # one for the "Open Price", "High Price", "Low Price" and "Close Price".
-                      "color": { # Represents a color in the RGBA color space. This representation is designed # The color for elements (i.e. bars, lines, points) associated with this
-                          # series.  If empty, a default color is used.
+                      "colorStyle": { # A color value. # The color for elements (such as bars, lines, and points) associated with
+                          # this series.  If empty, a default color is used.
+                          # If color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
+                      "color": { # Represents a color in the RGBA color space. This representation is designed # The color for elements (such as bars, lines, and points) associated with
+                          # this series.  If empty, a default color is used.
                           # for simplicity of conversion to/from color representations in various
                           # languages over compactness; for example, the fields of this representation
                           # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -31286,14 +63900,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -31323,11 +63937,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -31356,7 +63970,7 @@
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -31415,6 +64029,12 @@
                           # prices.
                           # It is an error to specify an axis that isn't a valid minor axis
                           # for the chart's type.
+                      "type": "A String", # The type of this series. Valid only if the
+                          # chartType is
+                          # COMBO.
+                          # Different types will change the way the series is visualized.
+                          # Only LINE, AREA,
+                          # and COLUMN are supported.
                       "lineStyle": { # Properties that describe the style of a line. # The line style of this series. Valid only if the
                           # chartType is AREA,
                           # LINE, or SCATTER.
@@ -31424,12 +64044,6 @@
                         "width": 42, # The thickness of the line, in px.
                         "type": "A String", # The dash type of the line.
                       },
-                      "type": "A String", # The type of this series. Valid only if the
-                          # chartType is
-                          # COMBO.
-                          # Different types will change the way the series is visualized.
-                          # Only LINE, AREA,
-                          # and COLUMN are supported.
                     },
                   ],
                   "interpolateNulls": True or False, # If some values in a series are missing, gaps may appear in the chart (e.g,
@@ -31439,8 +64053,8 @@
                   "legendPosition": "A String", # The position of the chart legend.
                   "lineSmoothing": True or False, # Gets whether all lines should be rendered smooth or straight by default.
                       # Applies to Line charts.
-                  "compareMode": "A String", # The behavior of tooltips and data highlighting when hovering on data and
-                      # chart area.
+                  "threeDimensional": True or False, # True to make the chart 3D.
+                      # Applies to Bar and Column charts.
                   "domains": [ # The domain of data this is charting.
                       # Only a single domain is supported.
                     { # The domain of a chart.
@@ -31453,7 +64067,7 @@
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -31508,13 +64122,10 @@
                     },
                   ],
                   "chartType": "A String", # The type of the chart.
-                  "threeDimensional": True or False, # True to make the chart 3D.
-                      # Applies to Bar and Column charts.
                   "axis": [ # The axis on the chart.
                     { # An axis of the chart.
                         # A chart may not have more than one axis per
                         # axis position.
-                      "position": "A String", # The position of this axis.
                       "format": { # The format of a run of text in a cell. # The format of the title.
                           # Only valid if the axis is not associated with the domain.
                           # Absent values indicate that the field isn't specified.
@@ -31588,14 +64199,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -31625,11 +64236,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -31653,21 +64264,168 @@
                           "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                         },
                         "bold": True or False, # True if the text is bold.
+                        "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                            # If foreground_color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
                         "strikethrough": True or False, # True if the text has a strikethrough.
                         "fontFamily": "A String", # The font family.
                         "fontSize": 42, # The size of the font.
                         "italic": True or False, # True if the text is italicized.
                         "underline": True or False, # True if the text is underlined.
                       },
-                      "title": "A String", # The title of this axis. If set, this overrides any title inferred
-                          # from headers of the data.
+                      "position": "A String", # The position of this axis.
+                      "viewWindowOptions": { # The options that define a "view window" for a chart (such as the visible # The view window options for this axis.
+                          # values in an axis).
+                        "viewWindowMin": 3.14, # The minimum numeric value to be shown in this view window. If unset, will
+                            # automatically determine a minimum value that looks good for the data.
+                        "viewWindowMax": 3.14, # The maximum numeric value to be shown in this view window. If unset, will
+                            # automatically determine a maximum value that looks good for the data.
+                        "viewWindowMode": "A String", # The view window's mode.
+                      },
                       "titleTextPosition": { # Position settings for text. # The axis title text position.
                         "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
                       },
+                      "title": "A String", # The title of this axis. If set, this overrides any title inferred
+                          # from headers of the data.
                     },
                   ],
                 },
-                "histogramChart": { # A <a href="/chart/interactive/docs/gallery/histogram">histogram chart</a>. # A histogram chart specification.
+                "histogramChart": { # A &lt;a href="/chart/interactive/docs/gallery/histogram"&gt;histogram chart&lt;/a&gt;. # A histogram chart specification.
                     # A histogram chart groups data items into bins, displaying each bin as a
                     # column of stacked items.  Histograms are used to display the distribution
                     # of a dataset.  Each column of items represents a range into which those
@@ -31754,14 +64512,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -31791,11 +64549,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -31818,13 +64576,152 @@
                         "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
+                      "barColorStyle": { # A color value. # The color of the column representing this series in each bucket.
+                          # This field is optional.
+                          # If bar_color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "data": { # The data included in a domain or series. # The data for this histogram series.
                         "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                           "sources": [ # The ranges of data for a series or domain.
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -31887,141 +64784,9 @@
                       # Cannot be negative.
                       # This field is optional.
                 },
-                "bubbleChart": { # A <a href="/chart/interactive/docs/gallery/bubblechart">bubble chart</a>. # A bubble chart specification.
-                  "bubbleBorderColor": { # Represents a color in the RGBA color space. This representation is designed # The bubble border color.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
-                        #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                        #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                  },
+                "bubbleChart": { # A &lt;a href="/chart/interactive/docs/gallery/bubblechart"&gt;bubble chart&lt;/a&gt;. # A bubble chart specification.
+                  "bubbleOpacity": 3.14, # The opacity of the bubbles between 0 and 1.0.
+                      # 0 is fully transparent and 1 is fully opaque.
                   "domain": { # The data included in a domain or series. # The data containing the bubble x-values.  These values locate the bubbles
                       # in the chart horizontally.
                     "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
@@ -32029,7 +64794,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -32154,14 +64919,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -32191,11 +64956,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -32219,6 +64984,144 @@
                       "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                     },
                     "bold": True or False, # True if the text is bold.
+                    "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                        # If foreground_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
                     "strikethrough": True or False, # True if the text has a strikethrough.
                     "fontFamily": "A String", # The font family.
                     "fontSize": 42, # The size of the font.
@@ -32232,7 +65135,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -32284,11 +65187,281 @@
                       ],
                     },
                   },
+                  "bubbleBorderColorStyle": { # A color value. # The bubble border color.
+                      # If bubble_border_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "legendPosition": "A String", # Where the legend of the chart should be drawn.
                   "bubbleMaxRadiusSize": 42, # The max radius size of the bubbles, in pixels.
                       # If specified, the field must be a positive value.
-                  "bubbleOpacity": 3.14, # The opacity of the bubbles between 0 and 1.0.
-                      # 0 is fully transparent and 1 is fully opaque.
+                  "bubbleBorderColor": { # Represents a color in the RGBA color space. This representation is designed # The bubble border color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
                   "groupIds": { # The data included in a domain or series. # The data containing the bubble group IDs. All bubbles with the same group
                       # ID are drawn in the same color. If bubble_sizes is specified then
                       # this field must also be specified but may contain blank values.
@@ -32298,7 +65471,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -32359,7 +65532,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -32417,7 +65590,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -32472,7 +65645,7 @@
                   "bubbleMinRadiusSize": 42, # The minimum radius size of the bubbles, in pixels.
                       # If specific, the field must be a positive value.
                 },
-                "orgChart": { # An <a href="/chart/interactive/docs/gallery/orgchart">org chart</a>. # An org chart specification.
+                "orgChart": { # An &lt;a href="/chart/interactive/docs/gallery/orgchart"&gt;org chart&lt;/a&gt;. # An org chart specification.
                     # Org charts require a unique set of labels in labels and may
                     # optionally include parent_labels and tooltips.
                     # parent_labels contain, for each node, the label identifying the parent
@@ -32491,7 +65664,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -32552,7 +65725,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -32674,14 +65847,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -32711,11 +65884,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -32745,7 +65918,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -32867,14 +66040,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -32904,11 +66077,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -32931,11 +66104,2986 @@
                     "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
+                  "nodeColorStyle": { # A color value. # The color of the org chart nodes.
+                      # If node_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "selectedNodeColorStyle": { # A color value. # The color of the selected org chart nodes.
+                      # If selected_node_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "nodeSize": "A String", # The size of the org chart nodes.
                 },
               },
             },
           ],
+          "filterViews": [ # The filter views in this sheet.
+            { # A filter view.
+              "title": "A String", # The name of the filter view.
+              "namedRangeId": "A String", # The named range this filter view is backed by, if any.
+                  #
+                  # When writing, only one of range or named_range_id
+                  # may be set.
+              "filterViewId": 42, # The ID of the filter view.
+              "range": { # A range on a sheet. # The range this filter view covers.
+                  #
+                  # When writing, only one of range or named_range_id
+                  # may be set.
+                  # All indexes are zero-based.
+                  # Indexes are half open, e.g the start index is inclusive
+                  # and the end index is exclusive -- [start_index, end_index).
+                  # Missing indexes indicate the range is unbounded on that side.
+                  #
+                  # For example, if `"Sheet1"` is sheet ID 0, then:
+                  #
+                  #   `Sheet1!A1:A1 == sheet_id: 0,
+                  #                   start_row_index: 0, end_row_index: 1,
+                  #                   start_column_index: 0, end_column_index: 1`
+                  #
+                  #   `Sheet1!A3:B4 == sheet_id: 0,
+                  #                   start_row_index: 2, end_row_index: 4,
+                  #                   start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1!A:B == sheet_id: 0,
+                  #                 start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1!A5:B == sheet_id: 0,
+                  #                  start_row_index: 4,
+                  #                  start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1 == sheet_id:0`
+                  #
+                  # The start index must always be less than or equal to the end index.
+                  # If the start index equals the end index, then the range is empty.
+                  # Empty ranges are typically not meaningful and are usually rendered in the
+                  # UI as `#REF!`.
+                "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "sheetId": 42, # The sheet this range is on.
+                "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              },
+              "sortSpecs": [ # The sort order per column. Later specifications are used when values
+                  # are equal in the earlier specifications.
+                { # A sort order associated with a specific column or row.
+                  "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to sort by; cells with this foreground color are
+                      # sorted to the top. Mutually exclusive with background_color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to sort by; cells with this fill color are sorted
+                      # to the top. Mutually exclusive with foreground_color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "foregroundColorStyle": { # A color value. # The foreground color to sort by; cells with this foreground color are
+                      # sorted to the top. Mutually exclusive with background_color, and must
+                      # be an RGB-type color. If foreground_color is also set, this field takes
+                      # precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "backgroundColorStyle": { # A color value. # The background fill color to sort by; cells with this fill color are sorted
+                      # to the top. Mutually exclusive with foreground_color, and must be an
+                      # RGB-type color. If background_color is also set, this field takes
+                      # precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "sortOrder": "A String", # The order data should be sorted.
+                  "dimensionIndex": 42, # The dimension the sort should be applied to.
+                },
+              ],
+              "criteria": { # The criteria for showing/hiding values per column.
+                  # The map's key is the column index, and the value is the criteria for
+                  # that column.
+                "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
+                  "visibleBackgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to filter by; only cells with this fill color are
+                      # shown. Mutually exclusive with visible_foreground_color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "hiddenValues": [ # Values that should be hidden.
+                    "A String",
+                  ],
+                  "visibleBackgroundColorStyle": { # A color value. # The background fill color to filter by; only cells with this fill color are
+                      # shown. This field is mutually exclusive with visible_foreground_color,
+                      # and must be set to an RGB-type color. If visible_background_color is
+                      # also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "visibleForegroundColorStyle": { # A color value. # The foreground color to filter by; only cells with this foreground color
+                      # are shown. This field is mutually exclusive with
+                      # visible_background_color, and must be set to an RGB-type color. If
+                      # visible_foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "visibleForegroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to filter by; only cells with this foreground color
+                      # are shown. Mutually exclusive with visible_background_color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
+                      # (This does not override hidden_values -- if a value is listed there,
+                      #  it will still be hidden.)
+                      # BooleanConditions are used by conditional formatting,
+                      # data validation, and the criteria in filters.
+                    "values": [ # The values of the condition. The number of supported values depends
+                        # on the condition type.  Some support zero values,
+                        # others one or two values,
+                        # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                      { # The value of the condition.
+                        "relativeDate": "A String", # A relative date (based on the current date).
+                            # Valid only if the type is
+                            # DATE_BEFORE,
+                            # DATE_AFTER,
+                            # DATE_ON_OR_BEFORE or
+                            # DATE_ON_OR_AFTER.
+                            #
+                            # Relative dates are not supported in data validation.
+                            # They are supported only in conditional formatting and
+                            # conditional filters.
+                        "userEnteredValue": "A String", # A value the condition is based on.
+                            # The value is parsed as if the user typed into a cell.
+                            # Formulas are supported (and must begin with an `=` or a '+').
+                      },
+                    ],
+                    "type": "A String", # The type of condition.
+                  },
+                },
+              },
+            },
+          ],
+          "slicers": [ # The slicers on this sheet.
+            { # A slicer in a sheet.
+              "position": { # The position of an embedded object such as a chart. # The position of the slicer. Note that slicer can be positioned only on
+                  # existing sheet. Also, width and height of slicer can be automatically
+                  # adjusted to keep it within permitted limits.
+                "newSheet": True or False, # If true, the embedded object is put on a new sheet whose ID
+                    # is chosen for you. Used only when writing.
+                "sheetId": 42, # The sheet this is on. Set only if the embedded object
+                    # is on its own sheet. Must be non-negative.
+                "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid.
+                  "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to.
+                      # All indexes are zero-based.
+                    "rowIndex": 42, # The row index of the coordinate.
+                    "columnIndex": 42, # The column index of the coordinate.
+                    "sheetId": 42, # The sheet this coordinate is on.
+                  },
+                  "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
+                      # from the anchor cell.
+                  "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
+                  "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
+                      # from the anchor cell.
+                  "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
+                },
+              },
+              "spec": { # The specifications of a slicer. # The specification of the slicer.
+                "backgroundColorStyle": { # A color value. # The background color of the slicer.
+                    # If background_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "dataRange": { # A range on a sheet. # The data range of the slicer.
+                    # All indexes are zero-based.
+                    # Indexes are half open, e.g the start index is inclusive
+                    # and the end index is exclusive -- [start_index, end_index).
+                    # Missing indexes indicate the range is unbounded on that side.
+                    #
+                    # For example, if `"Sheet1"` is sheet ID 0, then:
+                    #
+                    #   `Sheet1!A1:A1 == sheet_id: 0,
+                    #                   start_row_index: 0, end_row_index: 1,
+                    #                   start_column_index: 0, end_column_index: 1`
+                    #
+                    #   `Sheet1!A3:B4 == sheet_id: 0,
+                    #                   start_row_index: 2, end_row_index: 4,
+                    #                   start_column_index: 0, end_column_index: 2`
+                    #
+                    #   `Sheet1!A:B == sheet_id: 0,
+                    #                 start_column_index: 0, end_column_index: 2`
+                    #
+                    #   `Sheet1!A5:B == sheet_id: 0,
+                    #                  start_row_index: 4,
+                    #                  start_column_index: 0, end_column_index: 2`
+                    #
+                    #   `Sheet1 == sheet_id:0`
+                    #
+                    # The start index must always be less than or equal to the end index.
+                    # If the start index equals the end index, then the range is empty.
+                    # Empty ranges are typically not meaningful and are usually rendered in the
+                    # UI as `#REF!`.
+                  "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                  "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                  "sheetId": 42, # The sheet this range is on.
+                  "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                  "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                },
+                "title": "A String", # The title of the slicer.
+                "applyToPivotTables": True or False, # True if the filter should apply to pivot tables.
+                    # If not set, default to `True`.
+                "columnIndex": 42, # The column index in the data table on which the filter is applied to.
+                "horizontalAlignment": "A String", # The horizontal alignment of title in the slicer.
+                    # If unspecified, defaults to `LEFT`
+                "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the slicer.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "textFormat": { # The format of a run of text in a cell. # The text format of title in the slicer.
+                    # Absent values indicate that the field isn't specified.
+                  "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "strikethrough": True or False, # True if the text has a strikethrough.
+                  "fontFamily": "A String", # The font family.
+                  "fontSize": 42, # The size of the font.
+                  "italic": True or False, # True if the text is italicized.
+                  "underline": True or False, # True if the text is underlined.
+                },
+                "filterCriteria": { # Criteria for showing/hiding rows in a filter or filter view. # The filtering criteria of the slicer.
+                  "visibleBackgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to filter by; only cells with this fill color are
+                      # shown. Mutually exclusive with visible_foreground_color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "hiddenValues": [ # Values that should be hidden.
+                    "A String",
+                  ],
+                  "visibleBackgroundColorStyle": { # A color value. # The background fill color to filter by; only cells with this fill color are
+                      # shown. This field is mutually exclusive with visible_foreground_color,
+                      # and must be set to an RGB-type color. If visible_background_color is
+                      # also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "visibleForegroundColorStyle": { # A color value. # The foreground color to filter by; only cells with this foreground color
+                      # are shown. This field is mutually exclusive with
+                      # visible_background_color, and must be set to an RGB-type color. If
+                      # visible_foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "visibleForegroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to filter by; only cells with this foreground color
+                      # are shown. Mutually exclusive with visible_background_color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
+                      # (This does not override hidden_values -- if a value is listed there,
+                      #  it will still be hidden.)
+                      # BooleanConditions are used by conditional formatting,
+                      # data validation, and the criteria in filters.
+                    "values": [ # The values of the condition. The number of supported values depends
+                        # on the condition type.  Some support zero values,
+                        # others one or two values,
+                        # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                      { # The value of the condition.
+                        "relativeDate": "A String", # A relative date (based on the current date).
+                            # Valid only if the type is
+                            # DATE_BEFORE,
+                            # DATE_AFTER,
+                            # DATE_ON_OR_BEFORE or
+                            # DATE_ON_OR_AFTER.
+                            #
+                            # Relative dates are not supported in data validation.
+                            # They are supported only in conditional formatting and
+                            # conditional filters.
+                        "userEnteredValue": "A String", # A value the condition is based on.
+                            # The value is parsed as if the user typed into a cell.
+                            # Formulas are supported (and must begin with an `=` or a '+').
+                      },
+                    ],
+                    "type": "A String", # The type of condition.
+                  },
+                },
+              },
+              "slicerId": 42, # The ID of the slicer.
+            },
+          ],
+          "properties": { # Properties of a sheet. # The properties of the sheet.
+            "sheetType": "A String", # The type of sheet. Defaults to GRID.
+                # This field cannot be changed once set.
+            "index": 42, # The index of the sheet within the spreadsheet.
+                # When adding or updating sheet properties, if this field
+                # is excluded then the sheet is added or moved to the end
+                # of the sheet list. When updating sheet indices or inserting
+                # sheets, movement is considered in "before the move" indexes.
+                # For example, if there were 3 sheets (S1, S2, S3) in order to
+                # move S1 ahead of S2 the index would have to be set to 2. A sheet
+                # index update request is ignored if the requested index is
+                # identical to the sheets current index or if the requested new
+                # index is equal to the current sheet index + 1.
+            "title": "A String", # The name of the sheet.
+            "gridProperties": { # Properties of a grid. # Additional properties of the sheet if this sheet is a grid.
+                # (If the sheet is an object sheet, containing a chart or image, then
+                # this field will be absent.)
+                # When writing it is an error to set any grid properties on non-grid sheets.
+              "columnCount": 42, # The number of columns in the grid.
+              "rowGroupControlAfter": True or False, # True if the row grouping control toggle is shown after the group.
+              "columnGroupControlAfter": True or False, # True if the column grouping control toggle is shown after the group.
+              "frozenRowCount": 42, # The number of rows that are frozen in the grid.
+              "frozenColumnCount": 42, # The number of columns that are frozen in the grid.
+              "rowCount": 42, # The number of rows in the grid.
+              "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI.
+            },
+            "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet.
+            "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
+            "hidden": True or False, # True if the sheet is hidden in the UI, false if it's visible.
+            "tabColorStyle": { # A color value. # The color of the tab in the UI.
+                # If tab_color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
+            "sheetId": 42, # The ID of the sheet. Must be non-negative.
+                # This field cannot be changed once set.
+          },
           "protectedRanges": [ # The protected ranges in this sheet.
             { # A protected range.
               "unprotectedRanges": [ # The list of unprotected ranges within a protected sheet.
@@ -32984,6 +69132,21 @@
                   #
                   # When writing, only one of range or named_range_id
                   # may be set.
+              "protectedRangeId": 42, # The ID of the protected range.
+                  # This field is read-only.
+              "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
+                  # This field is only visible to users with edit access to the protected
+                  # range and the document.
+                  # Editors are not supported with warning_only protection.
+                "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
+                    # range.  Domain protection is only supported on documents within a domain.
+                "users": [ # The email addresses of users with edit access to the protected range.
+                  "A String",
+                ],
+                "groups": [ # The email addresses of groups with edit access to the protected range.
+                  "A String",
+                ],
+              },
               "range": { # A range on a sheet. # The range that is being protected.
                   # The range may be fully unbounded, in which case this is considered
                   # a protected sheet.
@@ -33024,21 +69187,6 @@
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
                 "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
-              "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
-                  # This field is only visible to users with edit access to the protected
-                  # range and the document.
-                  # Editors are not supported with warning_only protection.
-                "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
-                    # range.  Domain protection is only supported on documents within a domain.
-                "users": [ # The email addresses of users with edit access to the protected range.
-                  "A String",
-                ],
-                "groups": [ # The email addresses of groups with edit access to the protected range.
-                  "A String",
-                ],
-              },
-              "protectedRangeId": 42, # The ID of the protected range.
-                  # This field is read-only.
               "warningOnly": True or False, # True if this protected range will show a warning when editing.
                   # Warning-based protection means that every user can edit data in the
                   # protected range, except editing will prompt a warning asking the user
@@ -33051,6 +69199,7 @@
             },
           ],
           "data": [ # Data in the grid, if this is a grid sheet.
+              #
               # The number of GridData objects returned is dependent on the number of
               # ranges requested on this sheet. For example, if this is representing
               # `Sheet1`, and the spreadsheet was requested with ranges
@@ -33090,8 +69239,8 @@
                           "sheetId": 42, # The sheet this span is on.
                           "dimension": "A String", # The dimension of the span.
                         },
-                        "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                         "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+                        "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                       },
                       "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
                           # specified.
@@ -33136,8 +69285,8 @@
                           "sheetId": 42, # The sheet this span is on.
                           "dimension": "A String", # The dimension of the span.
                         },
-                        "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                         "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+                        "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                       },
                       "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
                           # specified.
@@ -33208,15 +69357,15 @@
                                 "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                     # (Note that formulaValue is not valid,
                                     #  because the values will be calculated.)
-                                  "numberValue": 3.14, # Represents a double value.
-                                      # Note: Dates, Times and DateTimes are represented as doubles in
-                                      # "serial number" format.
-                                  "boolValue": True or False, # Represents a boolean value.
-                                  "formulaValue": "A String", # Represents a formula.
                                   "stringValue": "A String", # Represents a string value.
                                       # Leading single quotes are not included. For example, if the user typed
                                       # `'123` into the UI, this would be represented as a `stringValue` of
                                       # `"123"`.
+                                  "boolValue": True or False, # Represents a boolean value.
+                                  "numberValue": 3.14, # Represents a double value.
+                                      # Note: Dates, Times and DateTimes are represented as doubles in
+                                      # "serial number" format.
+                                  "formulaValue": "A String", # Represents a formula.
                                   "errorValue": { # An error in a cell. # Represents an error.
                                       # This field is read-only.
                                     "message": "A String", # A message with more information about the error
@@ -33230,7 +69379,7 @@
                                 # If not specified, sorting is alphabetical by this group's values.
                               "buckets": [ # Determines the bucket from which values are chosen to sort.
                                   #
-                                  # For example, in a pivot table with one row group & two column groups,
+                                  # For example, in a pivot table with one row group &amp; two column groups,
                                   # the row group can list up to two values. The first value corresponds
                                   # to a value within the first column group, and the second value
                                   # corresponds to a value in the second column group.  If no values
@@ -33238,15 +69387,15 @@
                                   # to the "Grand Total" over the column groups. If a single value is listed,
                                   # this would correspond to using the "Total" of that bucket.
                                 { # The kinds of value that a cell in a spreadsheet can have.
-                                  "numberValue": 3.14, # Represents a double value.
-                                      # Note: Dates, Times and DateTimes are represented as doubles in
-                                      # "serial number" format.
-                                  "boolValue": True or False, # Represents a boolean value.
-                                  "formulaValue": "A String", # Represents a formula.
                                   "stringValue": "A String", # Represents a string value.
                                       # Leading single quotes are not included. For example, if the user typed
                                       # `'123` into the UI, this would be represented as a `stringValue` of
                                       # `"123"`.
+                                  "boolValue": True or False, # Represents a boolean value.
+                                  "numberValue": 3.14, # Represents a double value.
+                                      # Note: Dates, Times and DateTimes are represented as doubles in
+                                      # "serial number" format.
+                                  "formulaValue": "A String", # Represents a formula.
                                   "errorValue": { # An error in a cell. # Represents an error.
                                       # This field is read-only.
                                     "message": "A String", # A message with more information about the error
@@ -33259,6 +69408,11 @@
                                   # grouping should be sorted by.
                             },
                             "sortOrder": "A String", # The order the values in this group should be sorted.
+                            "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
+                                #
+                                # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                                # means this group refers to column `C`, whereas the offset `1` would
+                                # refer to column `D`.
                             "groupRule": { # An optional setting on a PivotGroup that defines buckets for the values # The group rule to apply to this row/column group.
                                 # in the source data column rather than breaking out each individual value.
                                 # Only one PivotGroup with a group rule may be added for each column in
@@ -33291,10 +69445,10 @@
                                   #     +-------------+-------------------+
                                   #     | Grouped Age | AVERAGE of Amount |
                                   #     +-------------+-------------------+
-                                  #     | < 25        |            $19.34 |
+                                  #     | &lt; 25        |            $19.34 |
                                   #     | 25-45       |            $31.43 |
                                   #     | 45-65       |            $35.87 |
-                                  #     | > 65        |            $27.55 |
+                                  #     | &gt; 65        |            $27.55 |
                                   #     +-------------+-------------------+
                                   #     | Grand Total |            $29.12 |
                                   #     +-------------+-------------------+
@@ -33341,15 +69495,15 @@
                                         # group within a given ManualRule. Items that do not appear in any
                                         # group will appear on their own.
                                       { # The kinds of value that a cell in a spreadsheet can have.
-                                        "numberValue": 3.14, # Represents a double value.
-                                            # Note: Dates, Times and DateTimes are represented as doubles in
-                                            # "serial number" format.
-                                        "boolValue": True or False, # Represents a boolean value.
-                                        "formulaValue": "A String", # Represents a formula.
                                         "stringValue": "A String", # Represents a string value.
                                             # Leading single quotes are not included. For example, if the user typed
                                             # `'123` into the UI, this would be represented as a `stringValue` of
                                             # `"123"`.
+                                        "boolValue": True or False, # Represents a boolean value.
+                                        "numberValue": 3.14, # Represents a double value.
+                                            # Note: Dates, Times and DateTimes are represented as doubles in
+                                            # "serial number" format.
+                                        "formulaValue": "A String", # Represents a formula.
                                         "errorValue": { # An error in a cell. # Represents an error.
                                             # This field is read-only.
                                           "message": "A String", # A message with more information about the error
@@ -33360,15 +69514,15 @@
                                     ],
                                     "groupName": { # The kinds of value that a cell in a spreadsheet can have. # The group name, which must be a string. Each group in a given
                                         # ManualRule must have a unique group name.
-                                      "numberValue": 3.14, # Represents a double value.
-                                          # Note: Dates, Times and DateTimes are represented as doubles in
-                                          # "serial number" format.
-                                      "boolValue": True or False, # Represents a boolean value.
-                                      "formulaValue": "A String", # Represents a formula.
                                       "stringValue": "A String", # Represents a string value.
                                           # Leading single quotes are not included. For example, if the user typed
                                           # `'123` into the UI, this would be represented as a `stringValue` of
                                           # `"123"`.
+                                      "boolValue": True or False, # Represents a boolean value.
+                                      "numberValue": 3.14, # Represents a double value.
+                                          # Note: Dates, Times and DateTimes are represented as doubles in
+                                          # "serial number" format.
+                                      "formulaValue": "A String", # Represents a formula.
                                       "errorValue": { # An error in a cell. # Represents an error.
                                           # This field is read-only.
                                         "message": "A String", # A message with more information about the error
@@ -33405,11 +69559,6 @@
                                 "type": "A String", # The type of date-time grouping to apply.
                               },
                             },
-                            "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
-                                #
-                                # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                                # means this group refers to column `C`, whereas the offset `1` would refer
-                                # to column `D`.
                           },
                         ],
                         "source": { # A range on a sheet. # The range the pivot table is reading data from.
@@ -33451,18 +69600,18 @@
                           { # The definition of how a value in a pivot table should be calculated.
                             "formula": "A String", # A custom formula to calculate the value.  The formula must start
                                 # with an `=` character.
-                            "name": "A String", # A name to use for the value.
-                            "sourceColumnOffset": 42, # The column offset of the source range that this value reads from.
-                                #
-                                # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                                # means this value refers to column `C`, whereas the offset `1` would
-                                # refer to column `D`.
                             "summarizeFunction": "A String", # A function to summarize the value.
                                 # If formula is set, the only supported values are
                                 # SUM and
                                 # CUSTOM.
                                 # If sourceColumnOffset is set, then `CUSTOM`
                                 # is not supported.
+                            "name": "A String", # A name to use for the value.
+                            "sourceColumnOffset": 42, # The column offset of the source range that this value reads from.
+                                #
+                                # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                                # means this value refers to column `C`, whereas the offset `1` would
+                                # refer to column `D`.
                             "calculatedDisplayType": "A String", # If specified, indicates that pivot values should be displayed as
                                 # the result of a calculation with another pivot value. For example, if
                                 # calculated_display_type is specified as PERCENT_OF_GRAND_TOTAL, all the
@@ -33528,15 +69677,15 @@
                                 "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                     # (Note that formulaValue is not valid,
                                     #  because the values will be calculated.)
-                                  "numberValue": 3.14, # Represents a double value.
-                                      # Note: Dates, Times and DateTimes are represented as doubles in
-                                      # "serial number" format.
-                                  "boolValue": True or False, # Represents a boolean value.
-                                  "formulaValue": "A String", # Represents a formula.
                                   "stringValue": "A String", # Represents a string value.
                                       # Leading single quotes are not included. For example, if the user typed
                                       # `'123` into the UI, this would be represented as a `stringValue` of
                                       # `"123"`.
+                                  "boolValue": True or False, # Represents a boolean value.
+                                  "numberValue": 3.14, # Represents a double value.
+                                      # Note: Dates, Times and DateTimes are represented as doubles in
+                                      # "serial number" format.
+                                  "formulaValue": "A String", # Represents a formula.
                                   "errorValue": { # An error in a cell. # Represents an error.
                                       # This field is read-only.
                                     "message": "A String", # A message with more information about the error
@@ -33550,7 +69699,7 @@
                                 # If not specified, sorting is alphabetical by this group's values.
                               "buckets": [ # Determines the bucket from which values are chosen to sort.
                                   #
-                                  # For example, in a pivot table with one row group & two column groups,
+                                  # For example, in a pivot table with one row group &amp; two column groups,
                                   # the row group can list up to two values. The first value corresponds
                                   # to a value within the first column group, and the second value
                                   # corresponds to a value in the second column group.  If no values
@@ -33558,15 +69707,15 @@
                                   # to the "Grand Total" over the column groups. If a single value is listed,
                                   # this would correspond to using the "Total" of that bucket.
                                 { # The kinds of value that a cell in a spreadsheet can have.
-                                  "numberValue": 3.14, # Represents a double value.
-                                      # Note: Dates, Times and DateTimes are represented as doubles in
-                                      # "serial number" format.
-                                  "boolValue": True or False, # Represents a boolean value.
-                                  "formulaValue": "A String", # Represents a formula.
                                   "stringValue": "A String", # Represents a string value.
                                       # Leading single quotes are not included. For example, if the user typed
                                       # `'123` into the UI, this would be represented as a `stringValue` of
                                       # `"123"`.
+                                  "boolValue": True or False, # Represents a boolean value.
+                                  "numberValue": 3.14, # Represents a double value.
+                                      # Note: Dates, Times and DateTimes are represented as doubles in
+                                      # "serial number" format.
+                                  "formulaValue": "A String", # Represents a formula.
                                   "errorValue": { # An error in a cell. # Represents an error.
                                       # This field is read-only.
                                     "message": "A String", # A message with more information about the error
@@ -33579,6 +69728,11 @@
                                   # grouping should be sorted by.
                             },
                             "sortOrder": "A String", # The order the values in this group should be sorted.
+                            "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
+                                #
+                                # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                                # means this group refers to column `C`, whereas the offset `1` would
+                                # refer to column `D`.
                             "groupRule": { # An optional setting on a PivotGroup that defines buckets for the values # The group rule to apply to this row/column group.
                                 # in the source data column rather than breaking out each individual value.
                                 # Only one PivotGroup with a group rule may be added for each column in
@@ -33611,10 +69765,10 @@
                                   #     +-------------+-------------------+
                                   #     | Grouped Age | AVERAGE of Amount |
                                   #     +-------------+-------------------+
-                                  #     | < 25        |            $19.34 |
+                                  #     | &lt; 25        |            $19.34 |
                                   #     | 25-45       |            $31.43 |
                                   #     | 45-65       |            $35.87 |
-                                  #     | > 65        |            $27.55 |
+                                  #     | &gt; 65        |            $27.55 |
                                   #     +-------------+-------------------+
                                   #     | Grand Total |            $29.12 |
                                   #     +-------------+-------------------+
@@ -33661,15 +69815,15 @@
                                         # group within a given ManualRule. Items that do not appear in any
                                         # group will appear on their own.
                                       { # The kinds of value that a cell in a spreadsheet can have.
-                                        "numberValue": 3.14, # Represents a double value.
-                                            # Note: Dates, Times and DateTimes are represented as doubles in
-                                            # "serial number" format.
-                                        "boolValue": True or False, # Represents a boolean value.
-                                        "formulaValue": "A String", # Represents a formula.
                                         "stringValue": "A String", # Represents a string value.
                                             # Leading single quotes are not included. For example, if the user typed
                                             # `'123` into the UI, this would be represented as a `stringValue` of
                                             # `"123"`.
+                                        "boolValue": True or False, # Represents a boolean value.
+                                        "numberValue": 3.14, # Represents a double value.
+                                            # Note: Dates, Times and DateTimes are represented as doubles in
+                                            # "serial number" format.
+                                        "formulaValue": "A String", # Represents a formula.
                                         "errorValue": { # An error in a cell. # Represents an error.
                                             # This field is read-only.
                                           "message": "A String", # A message with more information about the error
@@ -33680,15 +69834,15 @@
                                     ],
                                     "groupName": { # The kinds of value that a cell in a spreadsheet can have. # The group name, which must be a string. Each group in a given
                                         # ManualRule must have a unique group name.
-                                      "numberValue": 3.14, # Represents a double value.
-                                          # Note: Dates, Times and DateTimes are represented as doubles in
-                                          # "serial number" format.
-                                      "boolValue": True or False, # Represents a boolean value.
-                                      "formulaValue": "A String", # Represents a formula.
                                       "stringValue": "A String", # Represents a string value.
                                           # Leading single quotes are not included. For example, if the user typed
                                           # `'123` into the UI, this would be represented as a `stringValue` of
                                           # `"123"`.
+                                      "boolValue": True or False, # Represents a boolean value.
+                                      "numberValue": 3.14, # Represents a double value.
+                                          # Note: Dates, Times and DateTimes are represented as doubles in
+                                          # "serial number" format.
+                                      "formulaValue": "A String", # Represents a formula.
                                       "errorValue": { # An error in a cell. # Represents an error.
                                           # This field is read-only.
                                         "message": "A String", # A message with more information about the error
@@ -33725,11 +69879,6 @@
                                 "type": "A String", # The type of date-time grouping to apply.
                               },
                             },
-                            "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
-                                #
-                                # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                                # means this group refers to column `C`, whereas the offset `1` would refer
-                                # to column `D`.
                           },
                         ],
                       },
@@ -33741,15 +69890,15 @@
                           # the calculated value.  For cells with literals, this is
                           # the same as the user_entered_value.
                           # This field is read-only.
-                        "numberValue": 3.14, # Represents a double value.
-                            # Note: Dates, Times and DateTimes are represented as doubles in
-                            # "serial number" format.
-                        "boolValue": True or False, # Represents a boolean value.
-                        "formulaValue": "A String", # Represents a formula.
                         "stringValue": "A String", # Represents a string value.
                             # Leading single quotes are not included. For example, if the user typed
                             # `'123` into the UI, this would be represented as a `stringValue` of
                             # `"123"`.
+                        "boolValue": True or False, # Represents a boolean value.
+                        "numberValue": 3.14, # Represents a double value.
+                            # Note: Dates, Times and DateTimes are represented as doubles in
+                            # "serial number" format.
+                        "formulaValue": "A String", # Represents a formula.
                         "errorValue": { # An error in a cell. # Represents an error.
                             # This field is read-only.
                           "message": "A String", # A message with more information about the error
@@ -33763,15 +69912,15 @@
                       "userEnteredValue": { # The kinds of value that a cell in a spreadsheet can have. # The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()`
                           # Note: Dates, Times and DateTimes are represented as doubles in
                           # serial number format.
-                        "numberValue": 3.14, # Represents a double value.
-                            # Note: Dates, Times and DateTimes are represented as doubles in
-                            # "serial number" format.
-                        "boolValue": True or False, # Represents a boolean value.
-                        "formulaValue": "A String", # Represents a formula.
                         "stringValue": "A String", # Represents a string value.
                             # Leading single quotes are not included. For example, if the user typed
                             # `'123` into the UI, this would be represented as a `stringValue` of
                             # `"123"`.
+                        "boolValue": True or False, # Represents a boolean value.
+                        "numberValue": 3.14, # Represents a double value.
+                            # Note: Dates, Times and DateTimes are represented as doubles in
+                            # "serial number" format.
+                        "formulaValue": "A String", # Represents a formula.
                         "errorValue": { # An error in a cell. # Represents an error.
                             # This field is read-only.
                           "message": "A String", # A message with more information about the error
@@ -33786,6 +69935,13 @@
                           # If the effective format is the default format, effective format will
                           # not be written.
                           # This field is read-only.
+                        "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                            # When updating padding, every field must be specified.
+                          "top": 42, # The top padding of the cell.
+                          "left": 42, # The left padding of the cell.
+                          "right": 42, # The right padding of the cell.
+                          "bottom": 42, # The bottom padding of the cell.
+                        },
                         "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                           "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                               # the user's locale will be used if necessary for the given type.
@@ -33795,12 +69951,143 @@
                               # When writing, this field must be set.
                         },
                         "textDirection": "A String", # The direction of the text in the cell.
-                        "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                            # When updating padding, every field must be specified.
-                          "top": 42, # The top padding of the cell.
-                          "left": 42, # The left padding of the cell.
-                          "right": 42, # The right padding of the cell.
-                          "bottom": 42, # The bottom padding of the cell.
+                        "backgroundColorStyle": { # A color value. # The background color of the cell.
+                            # If background_color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
                         },
                         "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                         "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -33873,14 +70160,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -33910,11 +70197,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -34010,14 +70297,14 @@
                                 #
                                 #      static Color* toProto(UIColor* color) {
                                 #          CGFloat red, green, blue, alpha;
-                                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                                 #            return nil;
                                 #          }
                                 #          Color* result = [[Color alloc] init];
                                 #          [result setRed:red];
                                 #          [result setGreen:green];
                                 #          [result setBlue:blue];
-                                #          if (alpha <= 0.9999) {
+                                #          if (alpha &lt;= 0.9999) {
                                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                                 #          }
                                 #          [result autorelease];
@@ -34047,11 +70334,11 @@
                                 #     };
                                 #
                                 #     var rgbToCssColor_ = function(red, green, blue) {
-                                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                                 #       var hexString = rgbNumber.toString(16);
                                 #       var missingZeros = 6 - hexString.length;
                                 #       var resultBuilder = ['#'];
-                                #       for (var i = 0; i < missingZeros; i++) {
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
                                 #          resultBuilder.push('0');
                                 #       }
                                 #       resultBuilder.push(hexString);
@@ -34076,284 +70363,144 @@
                             },
                             "width": 42, # The width of the border, in pixels.
                                 # Deprecated; the width is determined by the "style" field.
-                            "style": "A String", # The style of the border.
-                          },
-                          "right": { # A border along a cell. # The right border of the cell.
-                            "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                                # for simplicity of conversion to/from color representations in various
-                                # languages over compactness; for example, the fields of this representation
-                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                                # method in iOS; and, with just a little work, it can be easily formatted into
-                                # a CSS "rgba()" string in JavaScript, as well.
-                                #
-                                # Note: this proto does not carry information about the absolute color space
-                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                                # space.
-                                #
-                                # Example (Java):
-                                #
-                                #      import com.google.type.Color;
-                                #
-                                #      // ...
-                                #      public static java.awt.Color fromProto(Color protocolor) {
-                                #        float alpha = protocolor.hasAlpha()
-                                #            ? protocolor.getAlpha().getValue()
-                                #            : 1.0;
-                                #
-                                #        return new java.awt.Color(
-                                #            protocolor.getRed(),
-                                #            protocolor.getGreen(),
-                                #            protocolor.getBlue(),
-                                #            alpha);
-                                #      }
-                                #
-                                #      public static Color toProto(java.awt.Color color) {
-                                #        float red = (float) color.getRed();
-                                #        float green = (float) color.getGreen();
-                                #        float blue = (float) color.getBlue();
-                                #        float denominator = 255.0;
-                                #        Color.Builder resultBuilder =
-                                #            Color
-                                #                .newBuilder()
-                                #                .setRed(red / denominator)
-                                #                .setGreen(green / denominator)
-                                #                .setBlue(blue / denominator);
-                                #        int alpha = color.getAlpha();
-                                #        if (alpha != 255) {
-                                #          result.setAlpha(
-                                #              FloatValue
-                                #                  .newBuilder()
-                                #                  .setValue(((float) alpha) / denominator)
-                                #                  .build());
-                                #        }
-                                #        return resultBuilder.build();
-                                #      }
-                                #      // ...
-                                #
-                                # Example (iOS / Obj-C):
-                                #
-                                #      // ...
-                                #      static UIColor* fromProto(Color* protocolor) {
-                                #         float red = [protocolor red];
-                                #         float green = [protocolor green];
-                                #         float blue = [protocolor blue];
-                                #         FloatValue* alpha_wrapper = [protocolor alpha];
-                                #         float alpha = 1.0;
-                                #         if (alpha_wrapper != nil) {
-                                #           alpha = [alpha_wrapper value];
-                                #         }
-                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                                #      }
-                                #
-                                #      static Color* toProto(UIColor* color) {
-                                #          CGFloat red, green, blue, alpha;
-                                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                                #            return nil;
-                                #          }
-                                #          Color* result = [[Color alloc] init];
-                                #          [result setRed:red];
-                                #          [result setGreen:green];
-                                #          [result setBlue:blue];
-                                #          if (alpha <= 0.9999) {
-                                #            [result setAlpha:floatWrapperWithValue(alpha)];
-                                #          }
-                                #          [result autorelease];
-                                #          return result;
-                                #     }
-                                #     // ...
-                                #
-                                #  Example (JavaScript):
-                                #
-                                #     // ...
-                                #
-                                #     var protoToCssColor = function(rgb_color) {
-                                #        var redFrac = rgb_color.red || 0.0;
-                                #        var greenFrac = rgb_color.green || 0.0;
-                                #        var blueFrac = rgb_color.blue || 0.0;
-                                #        var red = Math.floor(redFrac * 255);
-                                #        var green = Math.floor(greenFrac * 255);
-                                #        var blue = Math.floor(blueFrac * 255);
-                                #
-                                #        if (!('alpha' in rgb_color)) {
-                                #           return rgbToCssColor_(red, green, blue);
-                                #        }
-                                #
-                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                                #        var rgbParams = [red, green, blue].join(',');
-                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                                #     };
-                                #
-                                #     var rgbToCssColor_ = function(red, green, blue) {
-                                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                                #       var hexString = rgbNumber.toString(16);
-                                #       var missingZeros = 6 - hexString.length;
-                                #       var resultBuilder = ['#'];
-                                #       for (var i = 0; i < missingZeros; i++) {
-                                #          resultBuilder.push('0');
-                                #       }
-                                #       resultBuilder.push(hexString);
-                                #       return resultBuilder.join('');
-                                #     };
-                                #
-                                #     // ...
-                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                                  # the final pixel color is defined by the equation:
+                            "colorStyle": { # A color value. # The color of the border.
+                                # If color is also set, this field takes precedence.
+                              "themeColor": "A String", # Theme color.
+                              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                  # for simplicity of conversion to/from color representations in various
+                                  # languages over compactness; for example, the fields of this representation
+                                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                  # method in iOS; and, with just a little work, it can be easily formatted into
+                                  # a CSS "rgba()" string in JavaScript, as well.
                                   #
-                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  # Note: this proto does not carry information about the absolute color space
+                                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                  # space.
                                   #
-                                  # This means that a value of 1.0 corresponds to a solid color, whereas
-                                  # a value of 0.0 corresponds to a completely transparent color. This
-                                  # uses a wrapper message rather than a simple float scalar so that it is
-                                  # possible to distinguish between a default value and the value being unset.
-                                  # If omitted, this color object is to be rendered as a solid color
-                                  # (as if the alpha value had been explicitly given with a value of 1.0).
-                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                                  # Example (Java):
+                                  #
+                                  #      import com.google.type.Color;
+                                  #
+                                  #      // ...
+                                  #      public static java.awt.Color fromProto(Color protocolor) {
+                                  #        float alpha = protocolor.hasAlpha()
+                                  #            ? protocolor.getAlpha().getValue()
+                                  #            : 1.0;
+                                  #
+                                  #        return new java.awt.Color(
+                                  #            protocolor.getRed(),
+                                  #            protocolor.getGreen(),
+                                  #            protocolor.getBlue(),
+                                  #            alpha);
+                                  #      }
+                                  #
+                                  #      public static Color toProto(java.awt.Color color) {
+                                  #        float red = (float) color.getRed();
+                                  #        float green = (float) color.getGreen();
+                                  #        float blue = (float) color.getBlue();
+                                  #        float denominator = 255.0;
+                                  #        Color.Builder resultBuilder =
+                                  #            Color
+                                  #                .newBuilder()
+                                  #                .setRed(red / denominator)
+                                  #                .setGreen(green / denominator)
+                                  #                .setBlue(blue / denominator);
+                                  #        int alpha = color.getAlpha();
+                                  #        if (alpha != 255) {
+                                  #          result.setAlpha(
+                                  #              FloatValue
+                                  #                  .newBuilder()
+                                  #                  .setValue(((float) alpha) / denominator)
+                                  #                  .build());
+                                  #        }
+                                  #        return resultBuilder.build();
+                                  #      }
+                                  #      // ...
+                                  #
+                                  # Example (iOS / Obj-C):
+                                  #
+                                  #      // ...
+                                  #      static UIColor* fromProto(Color* protocolor) {
+                                  #         float red = [protocolor red];
+                                  #         float green = [protocolor green];
+                                  #         float blue = [protocolor blue];
+                                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                  #         float alpha = 1.0;
+                                  #         if (alpha_wrapper != nil) {
+                                  #           alpha = [alpha_wrapper value];
+                                  #         }
+                                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                  #      }
+                                  #
+                                  #      static Color* toProto(UIColor* color) {
+                                  #          CGFloat red, green, blue, alpha;
+                                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                  #            return nil;
+                                  #          }
+                                  #          Color* result = [[Color alloc] init];
+                                  #          [result setRed:red];
+                                  #          [result setGreen:green];
+                                  #          [result setBlue:blue];
+                                  #          if (alpha &lt;= 0.9999) {
+                                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                  #          }
+                                  #          [result autorelease];
+                                  #          return result;
+                                  #     }
+                                  #     // ...
+                                  #
+                                  #  Example (JavaScript):
+                                  #
+                                  #     // ...
+                                  #
+                                  #     var protoToCssColor = function(rgb_color) {
+                                  #        var redFrac = rgb_color.red || 0.0;
+                                  #        var greenFrac = rgb_color.green || 0.0;
+                                  #        var blueFrac = rgb_color.blue || 0.0;
+                                  #        var red = Math.floor(redFrac * 255);
+                                  #        var green = Math.floor(greenFrac * 255);
+                                  #        var blue = Math.floor(blueFrac * 255);
+                                  #
+                                  #        if (!('alpha' in rgb_color)) {
+                                  #           return rgbToCssColor_(red, green, blue);
+                                  #        }
+                                  #
+                                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                  #        var rgbParams = [red, green, blue].join(',');
+                                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                  #     };
+                                  #
+                                  #     var rgbToCssColor_ = function(red, green, blue) {
+                                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                  #       var hexString = rgbNumber.toString(16);
+                                  #       var missingZeros = 6 - hexString.length;
+                                  #       var resultBuilder = ['#'];
+                                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                                  #          resultBuilder.push('0');
+                                  #       }
+                                  #       resultBuilder.push(hexString);
+                                  #       return resultBuilder.join('');
+                                  #     };
+                                  #
+                                  #     // ...
+                                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                    # the final pixel color is defined by the equation:
+                                    #
+                                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                    #
+                                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                                    # a value of 0.0 corresponds to a completely transparent color. This
+                                    # uses a wrapper message rather than a simple float scalar so that it is
+                                    # possible to distinguish between a default value and the value being unset.
+                                    # If omitted, this color object is to be rendered as a solid color
+                                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                              },
                             },
-                            "width": 42, # The width of the border, in pixels.
-                                # Deprecated; the width is determined by the "style" field.
-                            "style": "A String", # The style of the border.
-                          },
-                          "bottom": { # A border along a cell. # The bottom border of the cell.
-                            "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                                # for simplicity of conversion to/from color representations in various
-                                # languages over compactness; for example, the fields of this representation
-                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                                # method in iOS; and, with just a little work, it can be easily formatted into
-                                # a CSS "rgba()" string in JavaScript, as well.
-                                #
-                                # Note: this proto does not carry information about the absolute color space
-                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                                # space.
-                                #
-                                # Example (Java):
-                                #
-                                #      import com.google.type.Color;
-                                #
-                                #      // ...
-                                #      public static java.awt.Color fromProto(Color protocolor) {
-                                #        float alpha = protocolor.hasAlpha()
-                                #            ? protocolor.getAlpha().getValue()
-                                #            : 1.0;
-                                #
-                                #        return new java.awt.Color(
-                                #            protocolor.getRed(),
-                                #            protocolor.getGreen(),
-                                #            protocolor.getBlue(),
-                                #            alpha);
-                                #      }
-                                #
-                                #      public static Color toProto(java.awt.Color color) {
-                                #        float red = (float) color.getRed();
-                                #        float green = (float) color.getGreen();
-                                #        float blue = (float) color.getBlue();
-                                #        float denominator = 255.0;
-                                #        Color.Builder resultBuilder =
-                                #            Color
-                                #                .newBuilder()
-                                #                .setRed(red / denominator)
-                                #                .setGreen(green / denominator)
-                                #                .setBlue(blue / denominator);
-                                #        int alpha = color.getAlpha();
-                                #        if (alpha != 255) {
-                                #          result.setAlpha(
-                                #              FloatValue
-                                #                  .newBuilder()
-                                #                  .setValue(((float) alpha) / denominator)
-                                #                  .build());
-                                #        }
-                                #        return resultBuilder.build();
-                                #      }
-                                #      // ...
-                                #
-                                # Example (iOS / Obj-C):
-                                #
-                                #      // ...
-                                #      static UIColor* fromProto(Color* protocolor) {
-                                #         float red = [protocolor red];
-                                #         float green = [protocolor green];
-                                #         float blue = [protocolor blue];
-                                #         FloatValue* alpha_wrapper = [protocolor alpha];
-                                #         float alpha = 1.0;
-                                #         if (alpha_wrapper != nil) {
-                                #           alpha = [alpha_wrapper value];
-                                #         }
-                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                                #      }
-                                #
-                                #      static Color* toProto(UIColor* color) {
-                                #          CGFloat red, green, blue, alpha;
-                                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                                #            return nil;
-                                #          }
-                                #          Color* result = [[Color alloc] init];
-                                #          [result setRed:red];
-                                #          [result setGreen:green];
-                                #          [result setBlue:blue];
-                                #          if (alpha <= 0.9999) {
-                                #            [result setAlpha:floatWrapperWithValue(alpha)];
-                                #          }
-                                #          [result autorelease];
-                                #          return result;
-                                #     }
-                                #     // ...
-                                #
-                                #  Example (JavaScript):
-                                #
-                                #     // ...
-                                #
-                                #     var protoToCssColor = function(rgb_color) {
-                                #        var redFrac = rgb_color.red || 0.0;
-                                #        var greenFrac = rgb_color.green || 0.0;
-                                #        var blueFrac = rgb_color.blue || 0.0;
-                                #        var red = Math.floor(redFrac * 255);
-                                #        var green = Math.floor(greenFrac * 255);
-                                #        var blue = Math.floor(blueFrac * 255);
-                                #
-                                #        if (!('alpha' in rgb_color)) {
-                                #           return rgbToCssColor_(red, green, blue);
-                                #        }
-                                #
-                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                                #        var rgbParams = [red, green, blue].join(',');
-                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                                #     };
-                                #
-                                #     var rgbToCssColor_ = function(red, green, blue) {
-                                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                                #       var hexString = rgbNumber.toString(16);
-                                #       var missingZeros = 6 - hexString.length;
-                                #       var resultBuilder = ['#'];
-                                #       for (var i = 0; i < missingZeros; i++) {
-                                #          resultBuilder.push('0');
-                                #       }
-                                #       resultBuilder.push(hexString);
-                                #       return resultBuilder.join('');
-                                #     };
-                                #
-                                #     // ...
-                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                                  # the final pixel color is defined by the equation:
-                                  #
-                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                                  #
-                                  # This means that a value of 1.0 corresponds to a solid color, whereas
-                                  # a value of 0.0 corresponds to a completely transparent color. This
-                                  # uses a wrapper message rather than a simple float scalar so that it is
-                                  # possible to distinguish between a default value and the value being unset.
-                                  # If omitted, this color object is to be rendered as a solid color
-                                  # (as if the alpha value had been explicitly given with a value of 1.0).
-                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                            },
-                            "width": 42, # The width of the border, in pixels.
-                                # Deprecated; the width is determined by the "style" field.
                             "style": "A String", # The style of the border.
                           },
                           "left": { # A border along a cell. # The left border of the cell.
@@ -34427,14 +70574,14 @@
                                 #
                                 #      static Color* toProto(UIColor* color) {
                                 #          CGFloat red, green, blue, alpha;
-                                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                                 #            return nil;
                                 #          }
                                 #          Color* result = [[Color alloc] init];
                                 #          [result setRed:red];
                                 #          [result setGreen:green];
                                 #          [result setBlue:blue];
-                                #          if (alpha <= 0.9999) {
+                                #          if (alpha &lt;= 0.9999) {
                                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                                 #          }
                                 #          [result autorelease];
@@ -34464,11 +70611,11 @@
                                 #     };
                                 #
                                 #     var rgbToCssColor_ = function(red, green, blue) {
-                                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                                 #       var hexString = rgbNumber.toString(16);
                                 #       var missingZeros = 6 - hexString.length;
                                 #       var resultBuilder = ['#'];
-                                #       for (var i = 0; i < missingZeros; i++) {
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
                                 #          resultBuilder.push('0');
                                 #       }
                                 #       resultBuilder.push(hexString);
@@ -34493,6 +70640,698 @@
                             },
                             "width": 42, # The width of the border, in pixels.
                                 # Deprecated; the width is determined by the "style" field.
+                            "colorStyle": { # A color value. # The color of the border.
+                                # If color is also set, this field takes precedence.
+                              "themeColor": "A String", # Theme color.
+                              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                  # for simplicity of conversion to/from color representations in various
+                                  # languages over compactness; for example, the fields of this representation
+                                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                  # method in iOS; and, with just a little work, it can be easily formatted into
+                                  # a CSS "rgba()" string in JavaScript, as well.
+                                  #
+                                  # Note: this proto does not carry information about the absolute color space
+                                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                  # space.
+                                  #
+                                  # Example (Java):
+                                  #
+                                  #      import com.google.type.Color;
+                                  #
+                                  #      // ...
+                                  #      public static java.awt.Color fromProto(Color protocolor) {
+                                  #        float alpha = protocolor.hasAlpha()
+                                  #            ? protocolor.getAlpha().getValue()
+                                  #            : 1.0;
+                                  #
+                                  #        return new java.awt.Color(
+                                  #            protocolor.getRed(),
+                                  #            protocolor.getGreen(),
+                                  #            protocolor.getBlue(),
+                                  #            alpha);
+                                  #      }
+                                  #
+                                  #      public static Color toProto(java.awt.Color color) {
+                                  #        float red = (float) color.getRed();
+                                  #        float green = (float) color.getGreen();
+                                  #        float blue = (float) color.getBlue();
+                                  #        float denominator = 255.0;
+                                  #        Color.Builder resultBuilder =
+                                  #            Color
+                                  #                .newBuilder()
+                                  #                .setRed(red / denominator)
+                                  #                .setGreen(green / denominator)
+                                  #                .setBlue(blue / denominator);
+                                  #        int alpha = color.getAlpha();
+                                  #        if (alpha != 255) {
+                                  #          result.setAlpha(
+                                  #              FloatValue
+                                  #                  .newBuilder()
+                                  #                  .setValue(((float) alpha) / denominator)
+                                  #                  .build());
+                                  #        }
+                                  #        return resultBuilder.build();
+                                  #      }
+                                  #      // ...
+                                  #
+                                  # Example (iOS / Obj-C):
+                                  #
+                                  #      // ...
+                                  #      static UIColor* fromProto(Color* protocolor) {
+                                  #         float red = [protocolor red];
+                                  #         float green = [protocolor green];
+                                  #         float blue = [protocolor blue];
+                                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                  #         float alpha = 1.0;
+                                  #         if (alpha_wrapper != nil) {
+                                  #           alpha = [alpha_wrapper value];
+                                  #         }
+                                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                  #      }
+                                  #
+                                  #      static Color* toProto(UIColor* color) {
+                                  #          CGFloat red, green, blue, alpha;
+                                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                  #            return nil;
+                                  #          }
+                                  #          Color* result = [[Color alloc] init];
+                                  #          [result setRed:red];
+                                  #          [result setGreen:green];
+                                  #          [result setBlue:blue];
+                                  #          if (alpha &lt;= 0.9999) {
+                                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                  #          }
+                                  #          [result autorelease];
+                                  #          return result;
+                                  #     }
+                                  #     // ...
+                                  #
+                                  #  Example (JavaScript):
+                                  #
+                                  #     // ...
+                                  #
+                                  #     var protoToCssColor = function(rgb_color) {
+                                  #        var redFrac = rgb_color.red || 0.0;
+                                  #        var greenFrac = rgb_color.green || 0.0;
+                                  #        var blueFrac = rgb_color.blue || 0.0;
+                                  #        var red = Math.floor(redFrac * 255);
+                                  #        var green = Math.floor(greenFrac * 255);
+                                  #        var blue = Math.floor(blueFrac * 255);
+                                  #
+                                  #        if (!('alpha' in rgb_color)) {
+                                  #           return rgbToCssColor_(red, green, blue);
+                                  #        }
+                                  #
+                                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                  #        var rgbParams = [red, green, blue].join(',');
+                                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                  #     };
+                                  #
+                                  #     var rgbToCssColor_ = function(red, green, blue) {
+                                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                  #       var hexString = rgbNumber.toString(16);
+                                  #       var missingZeros = 6 - hexString.length;
+                                  #       var resultBuilder = ['#'];
+                                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                                  #          resultBuilder.push('0');
+                                  #       }
+                                  #       resultBuilder.push(hexString);
+                                  #       return resultBuilder.join('');
+                                  #     };
+                                  #
+                                  #     // ...
+                                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                    # the final pixel color is defined by the equation:
+                                    #
+                                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                    #
+                                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                                    # a value of 0.0 corresponds to a completely transparent color. This
+                                    # uses a wrapper message rather than a simple float scalar so that it is
+                                    # possible to distinguish between a default value and the value being unset.
+                                    # If omitted, this color object is to be rendered as a solid color
+                                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                              },
+                            },
+                            "style": "A String", # The style of the border.
+                          },
+                          "right": { # A border along a cell. # The right border of the cell.
+                            "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                            "width": 42, # The width of the border, in pixels.
+                                # Deprecated; the width is determined by the "style" field.
+                            "colorStyle": { # A color value. # The color of the border.
+                                # If color is also set, this field takes precedence.
+                              "themeColor": "A String", # Theme color.
+                              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                  # for simplicity of conversion to/from color representations in various
+                                  # languages over compactness; for example, the fields of this representation
+                                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                  # method in iOS; and, with just a little work, it can be easily formatted into
+                                  # a CSS "rgba()" string in JavaScript, as well.
+                                  #
+                                  # Note: this proto does not carry information about the absolute color space
+                                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                  # space.
+                                  #
+                                  # Example (Java):
+                                  #
+                                  #      import com.google.type.Color;
+                                  #
+                                  #      // ...
+                                  #      public static java.awt.Color fromProto(Color protocolor) {
+                                  #        float alpha = protocolor.hasAlpha()
+                                  #            ? protocolor.getAlpha().getValue()
+                                  #            : 1.0;
+                                  #
+                                  #        return new java.awt.Color(
+                                  #            protocolor.getRed(),
+                                  #            protocolor.getGreen(),
+                                  #            protocolor.getBlue(),
+                                  #            alpha);
+                                  #      }
+                                  #
+                                  #      public static Color toProto(java.awt.Color color) {
+                                  #        float red = (float) color.getRed();
+                                  #        float green = (float) color.getGreen();
+                                  #        float blue = (float) color.getBlue();
+                                  #        float denominator = 255.0;
+                                  #        Color.Builder resultBuilder =
+                                  #            Color
+                                  #                .newBuilder()
+                                  #                .setRed(red / denominator)
+                                  #                .setGreen(green / denominator)
+                                  #                .setBlue(blue / denominator);
+                                  #        int alpha = color.getAlpha();
+                                  #        if (alpha != 255) {
+                                  #          result.setAlpha(
+                                  #              FloatValue
+                                  #                  .newBuilder()
+                                  #                  .setValue(((float) alpha) / denominator)
+                                  #                  .build());
+                                  #        }
+                                  #        return resultBuilder.build();
+                                  #      }
+                                  #      // ...
+                                  #
+                                  # Example (iOS / Obj-C):
+                                  #
+                                  #      // ...
+                                  #      static UIColor* fromProto(Color* protocolor) {
+                                  #         float red = [protocolor red];
+                                  #         float green = [protocolor green];
+                                  #         float blue = [protocolor blue];
+                                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                  #         float alpha = 1.0;
+                                  #         if (alpha_wrapper != nil) {
+                                  #           alpha = [alpha_wrapper value];
+                                  #         }
+                                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                  #      }
+                                  #
+                                  #      static Color* toProto(UIColor* color) {
+                                  #          CGFloat red, green, blue, alpha;
+                                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                  #            return nil;
+                                  #          }
+                                  #          Color* result = [[Color alloc] init];
+                                  #          [result setRed:red];
+                                  #          [result setGreen:green];
+                                  #          [result setBlue:blue];
+                                  #          if (alpha &lt;= 0.9999) {
+                                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                  #          }
+                                  #          [result autorelease];
+                                  #          return result;
+                                  #     }
+                                  #     // ...
+                                  #
+                                  #  Example (JavaScript):
+                                  #
+                                  #     // ...
+                                  #
+                                  #     var protoToCssColor = function(rgb_color) {
+                                  #        var redFrac = rgb_color.red || 0.0;
+                                  #        var greenFrac = rgb_color.green || 0.0;
+                                  #        var blueFrac = rgb_color.blue || 0.0;
+                                  #        var red = Math.floor(redFrac * 255);
+                                  #        var green = Math.floor(greenFrac * 255);
+                                  #        var blue = Math.floor(blueFrac * 255);
+                                  #
+                                  #        if (!('alpha' in rgb_color)) {
+                                  #           return rgbToCssColor_(red, green, blue);
+                                  #        }
+                                  #
+                                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                  #        var rgbParams = [red, green, blue].join(',');
+                                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                  #     };
+                                  #
+                                  #     var rgbToCssColor_ = function(red, green, blue) {
+                                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                  #       var hexString = rgbNumber.toString(16);
+                                  #       var missingZeros = 6 - hexString.length;
+                                  #       var resultBuilder = ['#'];
+                                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                                  #          resultBuilder.push('0');
+                                  #       }
+                                  #       resultBuilder.push(hexString);
+                                  #       return resultBuilder.join('');
+                                  #     };
+                                  #
+                                  #     // ...
+                                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                    # the final pixel color is defined by the equation:
+                                    #
+                                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                    #
+                                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                                    # a value of 0.0 corresponds to a completely transparent color. This
+                                    # uses a wrapper message rather than a simple float scalar so that it is
+                                    # possible to distinguish between a default value and the value being unset.
+                                    # If omitted, this color object is to be rendered as a solid color
+                                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                              },
+                            },
+                            "style": "A String", # The style of the border.
+                          },
+                          "bottom": { # A border along a cell. # The bottom border of the cell.
+                            "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                            "width": 42, # The width of the border, in pixels.
+                                # Deprecated; the width is determined by the "style" field.
+                            "colorStyle": { # A color value. # The color of the border.
+                                # If color is also set, this field takes precedence.
+                              "themeColor": "A String", # Theme color.
+                              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                  # for simplicity of conversion to/from color representations in various
+                                  # languages over compactness; for example, the fields of this representation
+                                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                  # method in iOS; and, with just a little work, it can be easily formatted into
+                                  # a CSS "rgba()" string in JavaScript, as well.
+                                  #
+                                  # Note: this proto does not carry information about the absolute color space
+                                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                  # space.
+                                  #
+                                  # Example (Java):
+                                  #
+                                  #      import com.google.type.Color;
+                                  #
+                                  #      // ...
+                                  #      public static java.awt.Color fromProto(Color protocolor) {
+                                  #        float alpha = protocolor.hasAlpha()
+                                  #            ? protocolor.getAlpha().getValue()
+                                  #            : 1.0;
+                                  #
+                                  #        return new java.awt.Color(
+                                  #            protocolor.getRed(),
+                                  #            protocolor.getGreen(),
+                                  #            protocolor.getBlue(),
+                                  #            alpha);
+                                  #      }
+                                  #
+                                  #      public static Color toProto(java.awt.Color color) {
+                                  #        float red = (float) color.getRed();
+                                  #        float green = (float) color.getGreen();
+                                  #        float blue = (float) color.getBlue();
+                                  #        float denominator = 255.0;
+                                  #        Color.Builder resultBuilder =
+                                  #            Color
+                                  #                .newBuilder()
+                                  #                .setRed(red / denominator)
+                                  #                .setGreen(green / denominator)
+                                  #                .setBlue(blue / denominator);
+                                  #        int alpha = color.getAlpha();
+                                  #        if (alpha != 255) {
+                                  #          result.setAlpha(
+                                  #              FloatValue
+                                  #                  .newBuilder()
+                                  #                  .setValue(((float) alpha) / denominator)
+                                  #                  .build());
+                                  #        }
+                                  #        return resultBuilder.build();
+                                  #      }
+                                  #      // ...
+                                  #
+                                  # Example (iOS / Obj-C):
+                                  #
+                                  #      // ...
+                                  #      static UIColor* fromProto(Color* protocolor) {
+                                  #         float red = [protocolor red];
+                                  #         float green = [protocolor green];
+                                  #         float blue = [protocolor blue];
+                                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                  #         float alpha = 1.0;
+                                  #         if (alpha_wrapper != nil) {
+                                  #           alpha = [alpha_wrapper value];
+                                  #         }
+                                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                  #      }
+                                  #
+                                  #      static Color* toProto(UIColor* color) {
+                                  #          CGFloat red, green, blue, alpha;
+                                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                  #            return nil;
+                                  #          }
+                                  #          Color* result = [[Color alloc] init];
+                                  #          [result setRed:red];
+                                  #          [result setGreen:green];
+                                  #          [result setBlue:blue];
+                                  #          if (alpha &lt;= 0.9999) {
+                                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                  #          }
+                                  #          [result autorelease];
+                                  #          return result;
+                                  #     }
+                                  #     // ...
+                                  #
+                                  #  Example (JavaScript):
+                                  #
+                                  #     // ...
+                                  #
+                                  #     var protoToCssColor = function(rgb_color) {
+                                  #        var redFrac = rgb_color.red || 0.0;
+                                  #        var greenFrac = rgb_color.green || 0.0;
+                                  #        var blueFrac = rgb_color.blue || 0.0;
+                                  #        var red = Math.floor(redFrac * 255);
+                                  #        var green = Math.floor(greenFrac * 255);
+                                  #        var blue = Math.floor(blueFrac * 255);
+                                  #
+                                  #        if (!('alpha' in rgb_color)) {
+                                  #           return rgbToCssColor_(red, green, blue);
+                                  #        }
+                                  #
+                                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                  #        var rgbParams = [red, green, blue].join(',');
+                                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                  #     };
+                                  #
+                                  #     var rgbToCssColor_ = function(red, green, blue) {
+                                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                  #       var hexString = rgbNumber.toString(16);
+                                  #       var missingZeros = 6 - hexString.length;
+                                  #       var resultBuilder = ['#'];
+                                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                                  #          resultBuilder.push('0');
+                                  #       }
+                                  #       resultBuilder.push(hexString);
+                                  #       return resultBuilder.join('');
+                                  #     };
+                                  #
+                                  #     // ...
+                                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                    # the final pixel color is defined by the equation:
+                                    #
+                                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                    #
+                                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                                    # a value of 0.0 corresponds to a completely transparent color. This
+                                    # uses a wrapper message rather than a simple float scalar so that it is
+                                    # possible to distinguish between a default value and the value being unset.
+                                    # If omitted, this color object is to be rendered as a solid color
+                                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                              },
+                            },
                             "style": "A String", # The style of the border.
                           },
                         },
@@ -34590,14 +71429,14 @@
                               #
                               #      static Color* toProto(UIColor* color) {
                               #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                               #            return nil;
                               #          }
                               #          Color* result = [[Color alloc] init];
                               #          [result setRed:red];
                               #          [result setGreen:green];
                               #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
+                              #          if (alpha &lt;= 0.9999) {
                               #            [result setAlpha:floatWrapperWithValue(alpha)];
                               #          }
                               #          [result autorelease];
@@ -34627,11 +71466,11 @@
                               #     };
                               #
                               #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                               #       var hexString = rgbNumber.toString(16);
                               #       var missingZeros = 6 - hexString.length;
                               #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
                               #          resultBuilder.push('0');
                               #       }
                               #       resultBuilder.push(hexString);
@@ -34655,6 +71494,144 @@
                             "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                           },
                           "bold": True or False, # True if the text is bold.
+                          "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                              # If foreground_color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                          },
                           "strikethrough": True or False, # True if the text has a strikethrough.
                           "fontFamily": "A String", # The font family.
                           "fontSize": 42, # The size of the font.
@@ -34666,6 +71643,13 @@
                       "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell.
                           #
                           # When writing, the new format will be merged with the existing format.
+                        "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                            # When updating padding, every field must be specified.
+                          "top": 42, # The top padding of the cell.
+                          "left": 42, # The left padding of the cell.
+                          "right": 42, # The right padding of the cell.
+                          "bottom": 42, # The bottom padding of the cell.
+                        },
                         "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                           "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                               # the user's locale will be used if necessary for the given type.
@@ -34675,12 +71659,143 @@
                               # When writing, this field must be set.
                         },
                         "textDirection": "A String", # The direction of the text in the cell.
-                        "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                            # When updating padding, every field must be specified.
-                          "top": 42, # The top padding of the cell.
-                          "left": 42, # The left padding of the cell.
-                          "right": 42, # The right padding of the cell.
-                          "bottom": 42, # The bottom padding of the cell.
+                        "backgroundColorStyle": { # A color value. # The background color of the cell.
+                            # If background_color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
                         },
                         "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                         "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -34753,14 +71868,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -34790,11 +71905,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -34890,14 +72005,14 @@
                                 #
                                 #      static Color* toProto(UIColor* color) {
                                 #          CGFloat red, green, blue, alpha;
-                                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                                 #            return nil;
                                 #          }
                                 #          Color* result = [[Color alloc] init];
                                 #          [result setRed:red];
                                 #          [result setGreen:green];
                                 #          [result setBlue:blue];
-                                #          if (alpha <= 0.9999) {
+                                #          if (alpha &lt;= 0.9999) {
                                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                                 #          }
                                 #          [result autorelease];
@@ -34927,11 +72042,11 @@
                                 #     };
                                 #
                                 #     var rgbToCssColor_ = function(red, green, blue) {
-                                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                                 #       var hexString = rgbNumber.toString(16);
                                 #       var missingZeros = 6 - hexString.length;
                                 #       var resultBuilder = ['#'];
-                                #       for (var i = 0; i < missingZeros; i++) {
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
                                 #          resultBuilder.push('0');
                                 #       }
                                 #       resultBuilder.push(hexString);
@@ -34956,284 +72071,144 @@
                             },
                             "width": 42, # The width of the border, in pixels.
                                 # Deprecated; the width is determined by the "style" field.
-                            "style": "A String", # The style of the border.
-                          },
-                          "right": { # A border along a cell. # The right border of the cell.
-                            "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                                # for simplicity of conversion to/from color representations in various
-                                # languages over compactness; for example, the fields of this representation
-                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                                # method in iOS; and, with just a little work, it can be easily formatted into
-                                # a CSS "rgba()" string in JavaScript, as well.
-                                #
-                                # Note: this proto does not carry information about the absolute color space
-                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                                # space.
-                                #
-                                # Example (Java):
-                                #
-                                #      import com.google.type.Color;
-                                #
-                                #      // ...
-                                #      public static java.awt.Color fromProto(Color protocolor) {
-                                #        float alpha = protocolor.hasAlpha()
-                                #            ? protocolor.getAlpha().getValue()
-                                #            : 1.0;
-                                #
-                                #        return new java.awt.Color(
-                                #            protocolor.getRed(),
-                                #            protocolor.getGreen(),
-                                #            protocolor.getBlue(),
-                                #            alpha);
-                                #      }
-                                #
-                                #      public static Color toProto(java.awt.Color color) {
-                                #        float red = (float) color.getRed();
-                                #        float green = (float) color.getGreen();
-                                #        float blue = (float) color.getBlue();
-                                #        float denominator = 255.0;
-                                #        Color.Builder resultBuilder =
-                                #            Color
-                                #                .newBuilder()
-                                #                .setRed(red / denominator)
-                                #                .setGreen(green / denominator)
-                                #                .setBlue(blue / denominator);
-                                #        int alpha = color.getAlpha();
-                                #        if (alpha != 255) {
-                                #          result.setAlpha(
-                                #              FloatValue
-                                #                  .newBuilder()
-                                #                  .setValue(((float) alpha) / denominator)
-                                #                  .build());
-                                #        }
-                                #        return resultBuilder.build();
-                                #      }
-                                #      // ...
-                                #
-                                # Example (iOS / Obj-C):
-                                #
-                                #      // ...
-                                #      static UIColor* fromProto(Color* protocolor) {
-                                #         float red = [protocolor red];
-                                #         float green = [protocolor green];
-                                #         float blue = [protocolor blue];
-                                #         FloatValue* alpha_wrapper = [protocolor alpha];
-                                #         float alpha = 1.0;
-                                #         if (alpha_wrapper != nil) {
-                                #           alpha = [alpha_wrapper value];
-                                #         }
-                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                                #      }
-                                #
-                                #      static Color* toProto(UIColor* color) {
-                                #          CGFloat red, green, blue, alpha;
-                                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                                #            return nil;
-                                #          }
-                                #          Color* result = [[Color alloc] init];
-                                #          [result setRed:red];
-                                #          [result setGreen:green];
-                                #          [result setBlue:blue];
-                                #          if (alpha <= 0.9999) {
-                                #            [result setAlpha:floatWrapperWithValue(alpha)];
-                                #          }
-                                #          [result autorelease];
-                                #          return result;
-                                #     }
-                                #     // ...
-                                #
-                                #  Example (JavaScript):
-                                #
-                                #     // ...
-                                #
-                                #     var protoToCssColor = function(rgb_color) {
-                                #        var redFrac = rgb_color.red || 0.0;
-                                #        var greenFrac = rgb_color.green || 0.0;
-                                #        var blueFrac = rgb_color.blue || 0.0;
-                                #        var red = Math.floor(redFrac * 255);
-                                #        var green = Math.floor(greenFrac * 255);
-                                #        var blue = Math.floor(blueFrac * 255);
-                                #
-                                #        if (!('alpha' in rgb_color)) {
-                                #           return rgbToCssColor_(red, green, blue);
-                                #        }
-                                #
-                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                                #        var rgbParams = [red, green, blue].join(',');
-                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                                #     };
-                                #
-                                #     var rgbToCssColor_ = function(red, green, blue) {
-                                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                                #       var hexString = rgbNumber.toString(16);
-                                #       var missingZeros = 6 - hexString.length;
-                                #       var resultBuilder = ['#'];
-                                #       for (var i = 0; i < missingZeros; i++) {
-                                #          resultBuilder.push('0');
-                                #       }
-                                #       resultBuilder.push(hexString);
-                                #       return resultBuilder.join('');
-                                #     };
-                                #
-                                #     // ...
-                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                                  # the final pixel color is defined by the equation:
+                            "colorStyle": { # A color value. # The color of the border.
+                                # If color is also set, this field takes precedence.
+                              "themeColor": "A String", # Theme color.
+                              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                  # for simplicity of conversion to/from color representations in various
+                                  # languages over compactness; for example, the fields of this representation
+                                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                  # method in iOS; and, with just a little work, it can be easily formatted into
+                                  # a CSS "rgba()" string in JavaScript, as well.
                                   #
-                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  # Note: this proto does not carry information about the absolute color space
+                                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                  # space.
                                   #
-                                  # This means that a value of 1.0 corresponds to a solid color, whereas
-                                  # a value of 0.0 corresponds to a completely transparent color. This
-                                  # uses a wrapper message rather than a simple float scalar so that it is
-                                  # possible to distinguish between a default value and the value being unset.
-                                  # If omitted, this color object is to be rendered as a solid color
-                                  # (as if the alpha value had been explicitly given with a value of 1.0).
-                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                                  # Example (Java):
+                                  #
+                                  #      import com.google.type.Color;
+                                  #
+                                  #      // ...
+                                  #      public static java.awt.Color fromProto(Color protocolor) {
+                                  #        float alpha = protocolor.hasAlpha()
+                                  #            ? protocolor.getAlpha().getValue()
+                                  #            : 1.0;
+                                  #
+                                  #        return new java.awt.Color(
+                                  #            protocolor.getRed(),
+                                  #            protocolor.getGreen(),
+                                  #            protocolor.getBlue(),
+                                  #            alpha);
+                                  #      }
+                                  #
+                                  #      public static Color toProto(java.awt.Color color) {
+                                  #        float red = (float) color.getRed();
+                                  #        float green = (float) color.getGreen();
+                                  #        float blue = (float) color.getBlue();
+                                  #        float denominator = 255.0;
+                                  #        Color.Builder resultBuilder =
+                                  #            Color
+                                  #                .newBuilder()
+                                  #                .setRed(red / denominator)
+                                  #                .setGreen(green / denominator)
+                                  #                .setBlue(blue / denominator);
+                                  #        int alpha = color.getAlpha();
+                                  #        if (alpha != 255) {
+                                  #          result.setAlpha(
+                                  #              FloatValue
+                                  #                  .newBuilder()
+                                  #                  .setValue(((float) alpha) / denominator)
+                                  #                  .build());
+                                  #        }
+                                  #        return resultBuilder.build();
+                                  #      }
+                                  #      // ...
+                                  #
+                                  # Example (iOS / Obj-C):
+                                  #
+                                  #      // ...
+                                  #      static UIColor* fromProto(Color* protocolor) {
+                                  #         float red = [protocolor red];
+                                  #         float green = [protocolor green];
+                                  #         float blue = [protocolor blue];
+                                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                  #         float alpha = 1.0;
+                                  #         if (alpha_wrapper != nil) {
+                                  #           alpha = [alpha_wrapper value];
+                                  #         }
+                                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                  #      }
+                                  #
+                                  #      static Color* toProto(UIColor* color) {
+                                  #          CGFloat red, green, blue, alpha;
+                                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                  #            return nil;
+                                  #          }
+                                  #          Color* result = [[Color alloc] init];
+                                  #          [result setRed:red];
+                                  #          [result setGreen:green];
+                                  #          [result setBlue:blue];
+                                  #          if (alpha &lt;= 0.9999) {
+                                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                  #          }
+                                  #          [result autorelease];
+                                  #          return result;
+                                  #     }
+                                  #     // ...
+                                  #
+                                  #  Example (JavaScript):
+                                  #
+                                  #     // ...
+                                  #
+                                  #     var protoToCssColor = function(rgb_color) {
+                                  #        var redFrac = rgb_color.red || 0.0;
+                                  #        var greenFrac = rgb_color.green || 0.0;
+                                  #        var blueFrac = rgb_color.blue || 0.0;
+                                  #        var red = Math.floor(redFrac * 255);
+                                  #        var green = Math.floor(greenFrac * 255);
+                                  #        var blue = Math.floor(blueFrac * 255);
+                                  #
+                                  #        if (!('alpha' in rgb_color)) {
+                                  #           return rgbToCssColor_(red, green, blue);
+                                  #        }
+                                  #
+                                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                  #        var rgbParams = [red, green, blue].join(',');
+                                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                  #     };
+                                  #
+                                  #     var rgbToCssColor_ = function(red, green, blue) {
+                                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                  #       var hexString = rgbNumber.toString(16);
+                                  #       var missingZeros = 6 - hexString.length;
+                                  #       var resultBuilder = ['#'];
+                                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                                  #          resultBuilder.push('0');
+                                  #       }
+                                  #       resultBuilder.push(hexString);
+                                  #       return resultBuilder.join('');
+                                  #     };
+                                  #
+                                  #     // ...
+                                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                    # the final pixel color is defined by the equation:
+                                    #
+                                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                    #
+                                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                                    # a value of 0.0 corresponds to a completely transparent color. This
+                                    # uses a wrapper message rather than a simple float scalar so that it is
+                                    # possible to distinguish between a default value and the value being unset.
+                                    # If omitted, this color object is to be rendered as a solid color
+                                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                              },
                             },
-                            "width": 42, # The width of the border, in pixels.
-                                # Deprecated; the width is determined by the "style" field.
-                            "style": "A String", # The style of the border.
-                          },
-                          "bottom": { # A border along a cell. # The bottom border of the cell.
-                            "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                                # for simplicity of conversion to/from color representations in various
-                                # languages over compactness; for example, the fields of this representation
-                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                                # method in iOS; and, with just a little work, it can be easily formatted into
-                                # a CSS "rgba()" string in JavaScript, as well.
-                                #
-                                # Note: this proto does not carry information about the absolute color space
-                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                                # space.
-                                #
-                                # Example (Java):
-                                #
-                                #      import com.google.type.Color;
-                                #
-                                #      // ...
-                                #      public static java.awt.Color fromProto(Color protocolor) {
-                                #        float alpha = protocolor.hasAlpha()
-                                #            ? protocolor.getAlpha().getValue()
-                                #            : 1.0;
-                                #
-                                #        return new java.awt.Color(
-                                #            protocolor.getRed(),
-                                #            protocolor.getGreen(),
-                                #            protocolor.getBlue(),
-                                #            alpha);
-                                #      }
-                                #
-                                #      public static Color toProto(java.awt.Color color) {
-                                #        float red = (float) color.getRed();
-                                #        float green = (float) color.getGreen();
-                                #        float blue = (float) color.getBlue();
-                                #        float denominator = 255.0;
-                                #        Color.Builder resultBuilder =
-                                #            Color
-                                #                .newBuilder()
-                                #                .setRed(red / denominator)
-                                #                .setGreen(green / denominator)
-                                #                .setBlue(blue / denominator);
-                                #        int alpha = color.getAlpha();
-                                #        if (alpha != 255) {
-                                #          result.setAlpha(
-                                #              FloatValue
-                                #                  .newBuilder()
-                                #                  .setValue(((float) alpha) / denominator)
-                                #                  .build());
-                                #        }
-                                #        return resultBuilder.build();
-                                #      }
-                                #      // ...
-                                #
-                                # Example (iOS / Obj-C):
-                                #
-                                #      // ...
-                                #      static UIColor* fromProto(Color* protocolor) {
-                                #         float red = [protocolor red];
-                                #         float green = [protocolor green];
-                                #         float blue = [protocolor blue];
-                                #         FloatValue* alpha_wrapper = [protocolor alpha];
-                                #         float alpha = 1.0;
-                                #         if (alpha_wrapper != nil) {
-                                #           alpha = [alpha_wrapper value];
-                                #         }
-                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                                #      }
-                                #
-                                #      static Color* toProto(UIColor* color) {
-                                #          CGFloat red, green, blue, alpha;
-                                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                                #            return nil;
-                                #          }
-                                #          Color* result = [[Color alloc] init];
-                                #          [result setRed:red];
-                                #          [result setGreen:green];
-                                #          [result setBlue:blue];
-                                #          if (alpha <= 0.9999) {
-                                #            [result setAlpha:floatWrapperWithValue(alpha)];
-                                #          }
-                                #          [result autorelease];
-                                #          return result;
-                                #     }
-                                #     // ...
-                                #
-                                #  Example (JavaScript):
-                                #
-                                #     // ...
-                                #
-                                #     var protoToCssColor = function(rgb_color) {
-                                #        var redFrac = rgb_color.red || 0.0;
-                                #        var greenFrac = rgb_color.green || 0.0;
-                                #        var blueFrac = rgb_color.blue || 0.0;
-                                #        var red = Math.floor(redFrac * 255);
-                                #        var green = Math.floor(greenFrac * 255);
-                                #        var blue = Math.floor(blueFrac * 255);
-                                #
-                                #        if (!('alpha' in rgb_color)) {
-                                #           return rgbToCssColor_(red, green, blue);
-                                #        }
-                                #
-                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                                #        var rgbParams = [red, green, blue].join(',');
-                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                                #     };
-                                #
-                                #     var rgbToCssColor_ = function(red, green, blue) {
-                                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                                #       var hexString = rgbNumber.toString(16);
-                                #       var missingZeros = 6 - hexString.length;
-                                #       var resultBuilder = ['#'];
-                                #       for (var i = 0; i < missingZeros; i++) {
-                                #          resultBuilder.push('0');
-                                #       }
-                                #       resultBuilder.push(hexString);
-                                #       return resultBuilder.join('');
-                                #     };
-                                #
-                                #     // ...
-                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                                  # the final pixel color is defined by the equation:
-                                  #
-                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                                  #
-                                  # This means that a value of 1.0 corresponds to a solid color, whereas
-                                  # a value of 0.0 corresponds to a completely transparent color. This
-                                  # uses a wrapper message rather than a simple float scalar so that it is
-                                  # possible to distinguish between a default value and the value being unset.
-                                  # If omitted, this color object is to be rendered as a solid color
-                                  # (as if the alpha value had been explicitly given with a value of 1.0).
-                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                            },
-                            "width": 42, # The width of the border, in pixels.
-                                # Deprecated; the width is determined by the "style" field.
                             "style": "A String", # The style of the border.
                           },
                           "left": { # A border along a cell. # The left border of the cell.
@@ -35307,14 +72282,14 @@
                                 #
                                 #      static Color* toProto(UIColor* color) {
                                 #          CGFloat red, green, blue, alpha;
-                                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                                 #            return nil;
                                 #          }
                                 #          Color* result = [[Color alloc] init];
                                 #          [result setRed:red];
                                 #          [result setGreen:green];
                                 #          [result setBlue:blue];
-                                #          if (alpha <= 0.9999) {
+                                #          if (alpha &lt;= 0.9999) {
                                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                                 #          }
                                 #          [result autorelease];
@@ -35344,11 +72319,11 @@
                                 #     };
                                 #
                                 #     var rgbToCssColor_ = function(red, green, blue) {
-                                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                                 #       var hexString = rgbNumber.toString(16);
                                 #       var missingZeros = 6 - hexString.length;
                                 #       var resultBuilder = ['#'];
-                                #       for (var i = 0; i < missingZeros; i++) {
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
                                 #          resultBuilder.push('0');
                                 #       }
                                 #       resultBuilder.push(hexString);
@@ -35373,6 +72348,698 @@
                             },
                             "width": 42, # The width of the border, in pixels.
                                 # Deprecated; the width is determined by the "style" field.
+                            "colorStyle": { # A color value. # The color of the border.
+                                # If color is also set, this field takes precedence.
+                              "themeColor": "A String", # Theme color.
+                              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                  # for simplicity of conversion to/from color representations in various
+                                  # languages over compactness; for example, the fields of this representation
+                                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                  # method in iOS; and, with just a little work, it can be easily formatted into
+                                  # a CSS "rgba()" string in JavaScript, as well.
+                                  #
+                                  # Note: this proto does not carry information about the absolute color space
+                                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                  # space.
+                                  #
+                                  # Example (Java):
+                                  #
+                                  #      import com.google.type.Color;
+                                  #
+                                  #      // ...
+                                  #      public static java.awt.Color fromProto(Color protocolor) {
+                                  #        float alpha = protocolor.hasAlpha()
+                                  #            ? protocolor.getAlpha().getValue()
+                                  #            : 1.0;
+                                  #
+                                  #        return new java.awt.Color(
+                                  #            protocolor.getRed(),
+                                  #            protocolor.getGreen(),
+                                  #            protocolor.getBlue(),
+                                  #            alpha);
+                                  #      }
+                                  #
+                                  #      public static Color toProto(java.awt.Color color) {
+                                  #        float red = (float) color.getRed();
+                                  #        float green = (float) color.getGreen();
+                                  #        float blue = (float) color.getBlue();
+                                  #        float denominator = 255.0;
+                                  #        Color.Builder resultBuilder =
+                                  #            Color
+                                  #                .newBuilder()
+                                  #                .setRed(red / denominator)
+                                  #                .setGreen(green / denominator)
+                                  #                .setBlue(blue / denominator);
+                                  #        int alpha = color.getAlpha();
+                                  #        if (alpha != 255) {
+                                  #          result.setAlpha(
+                                  #              FloatValue
+                                  #                  .newBuilder()
+                                  #                  .setValue(((float) alpha) / denominator)
+                                  #                  .build());
+                                  #        }
+                                  #        return resultBuilder.build();
+                                  #      }
+                                  #      // ...
+                                  #
+                                  # Example (iOS / Obj-C):
+                                  #
+                                  #      // ...
+                                  #      static UIColor* fromProto(Color* protocolor) {
+                                  #         float red = [protocolor red];
+                                  #         float green = [protocolor green];
+                                  #         float blue = [protocolor blue];
+                                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                  #         float alpha = 1.0;
+                                  #         if (alpha_wrapper != nil) {
+                                  #           alpha = [alpha_wrapper value];
+                                  #         }
+                                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                  #      }
+                                  #
+                                  #      static Color* toProto(UIColor* color) {
+                                  #          CGFloat red, green, blue, alpha;
+                                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                  #            return nil;
+                                  #          }
+                                  #          Color* result = [[Color alloc] init];
+                                  #          [result setRed:red];
+                                  #          [result setGreen:green];
+                                  #          [result setBlue:blue];
+                                  #          if (alpha &lt;= 0.9999) {
+                                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                  #          }
+                                  #          [result autorelease];
+                                  #          return result;
+                                  #     }
+                                  #     // ...
+                                  #
+                                  #  Example (JavaScript):
+                                  #
+                                  #     // ...
+                                  #
+                                  #     var protoToCssColor = function(rgb_color) {
+                                  #        var redFrac = rgb_color.red || 0.0;
+                                  #        var greenFrac = rgb_color.green || 0.0;
+                                  #        var blueFrac = rgb_color.blue || 0.0;
+                                  #        var red = Math.floor(redFrac * 255);
+                                  #        var green = Math.floor(greenFrac * 255);
+                                  #        var blue = Math.floor(blueFrac * 255);
+                                  #
+                                  #        if (!('alpha' in rgb_color)) {
+                                  #           return rgbToCssColor_(red, green, blue);
+                                  #        }
+                                  #
+                                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                  #        var rgbParams = [red, green, blue].join(',');
+                                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                  #     };
+                                  #
+                                  #     var rgbToCssColor_ = function(red, green, blue) {
+                                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                  #       var hexString = rgbNumber.toString(16);
+                                  #       var missingZeros = 6 - hexString.length;
+                                  #       var resultBuilder = ['#'];
+                                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                                  #          resultBuilder.push('0');
+                                  #       }
+                                  #       resultBuilder.push(hexString);
+                                  #       return resultBuilder.join('');
+                                  #     };
+                                  #
+                                  #     // ...
+                                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                    # the final pixel color is defined by the equation:
+                                    #
+                                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                    #
+                                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                                    # a value of 0.0 corresponds to a completely transparent color. This
+                                    # uses a wrapper message rather than a simple float scalar so that it is
+                                    # possible to distinguish between a default value and the value being unset.
+                                    # If omitted, this color object is to be rendered as a solid color
+                                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                              },
+                            },
+                            "style": "A String", # The style of the border.
+                          },
+                          "right": { # A border along a cell. # The right border of the cell.
+                            "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                            "width": 42, # The width of the border, in pixels.
+                                # Deprecated; the width is determined by the "style" field.
+                            "colorStyle": { # A color value. # The color of the border.
+                                # If color is also set, this field takes precedence.
+                              "themeColor": "A String", # Theme color.
+                              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                  # for simplicity of conversion to/from color representations in various
+                                  # languages over compactness; for example, the fields of this representation
+                                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                  # method in iOS; and, with just a little work, it can be easily formatted into
+                                  # a CSS "rgba()" string in JavaScript, as well.
+                                  #
+                                  # Note: this proto does not carry information about the absolute color space
+                                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                  # space.
+                                  #
+                                  # Example (Java):
+                                  #
+                                  #      import com.google.type.Color;
+                                  #
+                                  #      // ...
+                                  #      public static java.awt.Color fromProto(Color protocolor) {
+                                  #        float alpha = protocolor.hasAlpha()
+                                  #            ? protocolor.getAlpha().getValue()
+                                  #            : 1.0;
+                                  #
+                                  #        return new java.awt.Color(
+                                  #            protocolor.getRed(),
+                                  #            protocolor.getGreen(),
+                                  #            protocolor.getBlue(),
+                                  #            alpha);
+                                  #      }
+                                  #
+                                  #      public static Color toProto(java.awt.Color color) {
+                                  #        float red = (float) color.getRed();
+                                  #        float green = (float) color.getGreen();
+                                  #        float blue = (float) color.getBlue();
+                                  #        float denominator = 255.0;
+                                  #        Color.Builder resultBuilder =
+                                  #            Color
+                                  #                .newBuilder()
+                                  #                .setRed(red / denominator)
+                                  #                .setGreen(green / denominator)
+                                  #                .setBlue(blue / denominator);
+                                  #        int alpha = color.getAlpha();
+                                  #        if (alpha != 255) {
+                                  #          result.setAlpha(
+                                  #              FloatValue
+                                  #                  .newBuilder()
+                                  #                  .setValue(((float) alpha) / denominator)
+                                  #                  .build());
+                                  #        }
+                                  #        return resultBuilder.build();
+                                  #      }
+                                  #      // ...
+                                  #
+                                  # Example (iOS / Obj-C):
+                                  #
+                                  #      // ...
+                                  #      static UIColor* fromProto(Color* protocolor) {
+                                  #         float red = [protocolor red];
+                                  #         float green = [protocolor green];
+                                  #         float blue = [protocolor blue];
+                                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                  #         float alpha = 1.0;
+                                  #         if (alpha_wrapper != nil) {
+                                  #           alpha = [alpha_wrapper value];
+                                  #         }
+                                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                  #      }
+                                  #
+                                  #      static Color* toProto(UIColor* color) {
+                                  #          CGFloat red, green, blue, alpha;
+                                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                  #            return nil;
+                                  #          }
+                                  #          Color* result = [[Color alloc] init];
+                                  #          [result setRed:red];
+                                  #          [result setGreen:green];
+                                  #          [result setBlue:blue];
+                                  #          if (alpha &lt;= 0.9999) {
+                                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                  #          }
+                                  #          [result autorelease];
+                                  #          return result;
+                                  #     }
+                                  #     // ...
+                                  #
+                                  #  Example (JavaScript):
+                                  #
+                                  #     // ...
+                                  #
+                                  #     var protoToCssColor = function(rgb_color) {
+                                  #        var redFrac = rgb_color.red || 0.0;
+                                  #        var greenFrac = rgb_color.green || 0.0;
+                                  #        var blueFrac = rgb_color.blue || 0.0;
+                                  #        var red = Math.floor(redFrac * 255);
+                                  #        var green = Math.floor(greenFrac * 255);
+                                  #        var blue = Math.floor(blueFrac * 255);
+                                  #
+                                  #        if (!('alpha' in rgb_color)) {
+                                  #           return rgbToCssColor_(red, green, blue);
+                                  #        }
+                                  #
+                                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                  #        var rgbParams = [red, green, blue].join(',');
+                                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                  #     };
+                                  #
+                                  #     var rgbToCssColor_ = function(red, green, blue) {
+                                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                  #       var hexString = rgbNumber.toString(16);
+                                  #       var missingZeros = 6 - hexString.length;
+                                  #       var resultBuilder = ['#'];
+                                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                                  #          resultBuilder.push('0');
+                                  #       }
+                                  #       resultBuilder.push(hexString);
+                                  #       return resultBuilder.join('');
+                                  #     };
+                                  #
+                                  #     // ...
+                                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                    # the final pixel color is defined by the equation:
+                                    #
+                                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                    #
+                                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                                    # a value of 0.0 corresponds to a completely transparent color. This
+                                    # uses a wrapper message rather than a simple float scalar so that it is
+                                    # possible to distinguish between a default value and the value being unset.
+                                    # If omitted, this color object is to be rendered as a solid color
+                                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                              },
+                            },
+                            "style": "A String", # The style of the border.
+                          },
+                          "bottom": { # A border along a cell. # The bottom border of the cell.
+                            "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                            "width": 42, # The width of the border, in pixels.
+                                # Deprecated; the width is determined by the "style" field.
+                            "colorStyle": { # A color value. # The color of the border.
+                                # If color is also set, this field takes precedence.
+                              "themeColor": "A String", # Theme color.
+                              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                  # for simplicity of conversion to/from color representations in various
+                                  # languages over compactness; for example, the fields of this representation
+                                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                  # method in iOS; and, with just a little work, it can be easily formatted into
+                                  # a CSS "rgba()" string in JavaScript, as well.
+                                  #
+                                  # Note: this proto does not carry information about the absolute color space
+                                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                  # space.
+                                  #
+                                  # Example (Java):
+                                  #
+                                  #      import com.google.type.Color;
+                                  #
+                                  #      // ...
+                                  #      public static java.awt.Color fromProto(Color protocolor) {
+                                  #        float alpha = protocolor.hasAlpha()
+                                  #            ? protocolor.getAlpha().getValue()
+                                  #            : 1.0;
+                                  #
+                                  #        return new java.awt.Color(
+                                  #            protocolor.getRed(),
+                                  #            protocolor.getGreen(),
+                                  #            protocolor.getBlue(),
+                                  #            alpha);
+                                  #      }
+                                  #
+                                  #      public static Color toProto(java.awt.Color color) {
+                                  #        float red = (float) color.getRed();
+                                  #        float green = (float) color.getGreen();
+                                  #        float blue = (float) color.getBlue();
+                                  #        float denominator = 255.0;
+                                  #        Color.Builder resultBuilder =
+                                  #            Color
+                                  #                .newBuilder()
+                                  #                .setRed(red / denominator)
+                                  #                .setGreen(green / denominator)
+                                  #                .setBlue(blue / denominator);
+                                  #        int alpha = color.getAlpha();
+                                  #        if (alpha != 255) {
+                                  #          result.setAlpha(
+                                  #              FloatValue
+                                  #                  .newBuilder()
+                                  #                  .setValue(((float) alpha) / denominator)
+                                  #                  .build());
+                                  #        }
+                                  #        return resultBuilder.build();
+                                  #      }
+                                  #      // ...
+                                  #
+                                  # Example (iOS / Obj-C):
+                                  #
+                                  #      // ...
+                                  #      static UIColor* fromProto(Color* protocolor) {
+                                  #         float red = [protocolor red];
+                                  #         float green = [protocolor green];
+                                  #         float blue = [protocolor blue];
+                                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                  #         float alpha = 1.0;
+                                  #         if (alpha_wrapper != nil) {
+                                  #           alpha = [alpha_wrapper value];
+                                  #         }
+                                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                  #      }
+                                  #
+                                  #      static Color* toProto(UIColor* color) {
+                                  #          CGFloat red, green, blue, alpha;
+                                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                  #            return nil;
+                                  #          }
+                                  #          Color* result = [[Color alloc] init];
+                                  #          [result setRed:red];
+                                  #          [result setGreen:green];
+                                  #          [result setBlue:blue];
+                                  #          if (alpha &lt;= 0.9999) {
+                                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                  #          }
+                                  #          [result autorelease];
+                                  #          return result;
+                                  #     }
+                                  #     // ...
+                                  #
+                                  #  Example (JavaScript):
+                                  #
+                                  #     // ...
+                                  #
+                                  #     var protoToCssColor = function(rgb_color) {
+                                  #        var redFrac = rgb_color.red || 0.0;
+                                  #        var greenFrac = rgb_color.green || 0.0;
+                                  #        var blueFrac = rgb_color.blue || 0.0;
+                                  #        var red = Math.floor(redFrac * 255);
+                                  #        var green = Math.floor(greenFrac * 255);
+                                  #        var blue = Math.floor(blueFrac * 255);
+                                  #
+                                  #        if (!('alpha' in rgb_color)) {
+                                  #           return rgbToCssColor_(red, green, blue);
+                                  #        }
+                                  #
+                                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                  #        var rgbParams = [red, green, blue].join(',');
+                                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                  #     };
+                                  #
+                                  #     var rgbToCssColor_ = function(red, green, blue) {
+                                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                  #       var hexString = rgbNumber.toString(16);
+                                  #       var missingZeros = 6 - hexString.length;
+                                  #       var resultBuilder = ['#'];
+                                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                                  #          resultBuilder.push('0');
+                                  #       }
+                                  #       resultBuilder.push(hexString);
+                                  #       return resultBuilder.join('');
+                                  #     };
+                                  #
+                                  #     // ...
+                                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                    # the final pixel color is defined by the equation:
+                                    #
+                                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                    #
+                                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                                    # a value of 0.0 corresponds to a completely transparent color. This
+                                    # uses a wrapper message rather than a simple float scalar so that it is
+                                    # possible to distinguish between a default value and the value being unset.
+                                    # If omitted, this color object is to be rendered as a solid color
+                                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                              },
+                            },
                             "style": "A String", # The style of the border.
                           },
                         },
@@ -35470,14 +73137,14 @@
                               #
                               #      static Color* toProto(UIColor* color) {
                               #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                               #            return nil;
                               #          }
                               #          Color* result = [[Color alloc] init];
                               #          [result setRed:red];
                               #          [result setGreen:green];
                               #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
+                              #          if (alpha &lt;= 0.9999) {
                               #            [result setAlpha:floatWrapperWithValue(alpha)];
                               #          }
                               #          [result autorelease];
@@ -35507,11 +73174,11 @@
                               #     };
                               #
                               #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                               #       var hexString = rgbNumber.toString(16);
                               #       var missingZeros = 6 - hexString.length;
                               #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
                               #          resultBuilder.push('0');
                               #       }
                               #       resultBuilder.push(hexString);
@@ -35535,6 +73202,144 @@
                             "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                           },
                           "bold": True or False, # True if the text is bold.
+                          "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                              # If foreground_color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                          },
                           "strikethrough": True or False, # True if the text has a strikethrough.
                           "fontFamily": "A String", # The font family.
                           "fontSize": 42, # The size of the font.
@@ -35661,14 +73466,14 @@
                                 #
                                 #      static Color* toProto(UIColor* color) {
                                 #          CGFloat red, green, blue, alpha;
-                                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                                 #            return nil;
                                 #          }
                                 #          Color* result = [[Color alloc] init];
                                 #          [result setRed:red];
                                 #          [result setGreen:green];
                                 #          [result setBlue:blue];
-                                #          if (alpha <= 0.9999) {
+                                #          if (alpha &lt;= 0.9999) {
                                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                                 #          }
                                 #          [result autorelease];
@@ -35698,11 +73503,11 @@
                                 #     };
                                 #
                                 #     var rgbToCssColor_ = function(red, green, blue) {
-                                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                                 #       var hexString = rgbNumber.toString(16);
                                 #       var missingZeros = 6 - hexString.length;
                                 #       var resultBuilder = ['#'];
-                                #       for (var i = 0; i < missingZeros; i++) {
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
                                 #          resultBuilder.push('0');
                                 #       }
                                 #       resultBuilder.push(hexString);
@@ -35726,6 +73531,144 @@
                               "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                             },
                             "bold": True or False, # True if the text is bold.
+                            "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                                # If foreground_color is also set, this field takes precedence.
+                              "themeColor": "A String", # Theme color.
+                              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                  # for simplicity of conversion to/from color representations in various
+                                  # languages over compactness; for example, the fields of this representation
+                                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                  # method in iOS; and, with just a little work, it can be easily formatted into
+                                  # a CSS "rgba()" string in JavaScript, as well.
+                                  #
+                                  # Note: this proto does not carry information about the absolute color space
+                                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                  # space.
+                                  #
+                                  # Example (Java):
+                                  #
+                                  #      import com.google.type.Color;
+                                  #
+                                  #      // ...
+                                  #      public static java.awt.Color fromProto(Color protocolor) {
+                                  #        float alpha = protocolor.hasAlpha()
+                                  #            ? protocolor.getAlpha().getValue()
+                                  #            : 1.0;
+                                  #
+                                  #        return new java.awt.Color(
+                                  #            protocolor.getRed(),
+                                  #            protocolor.getGreen(),
+                                  #            protocolor.getBlue(),
+                                  #            alpha);
+                                  #      }
+                                  #
+                                  #      public static Color toProto(java.awt.Color color) {
+                                  #        float red = (float) color.getRed();
+                                  #        float green = (float) color.getGreen();
+                                  #        float blue = (float) color.getBlue();
+                                  #        float denominator = 255.0;
+                                  #        Color.Builder resultBuilder =
+                                  #            Color
+                                  #                .newBuilder()
+                                  #                .setRed(red / denominator)
+                                  #                .setGreen(green / denominator)
+                                  #                .setBlue(blue / denominator);
+                                  #        int alpha = color.getAlpha();
+                                  #        if (alpha != 255) {
+                                  #          result.setAlpha(
+                                  #              FloatValue
+                                  #                  .newBuilder()
+                                  #                  .setValue(((float) alpha) / denominator)
+                                  #                  .build());
+                                  #        }
+                                  #        return resultBuilder.build();
+                                  #      }
+                                  #      // ...
+                                  #
+                                  # Example (iOS / Obj-C):
+                                  #
+                                  #      // ...
+                                  #      static UIColor* fromProto(Color* protocolor) {
+                                  #         float red = [protocolor red];
+                                  #         float green = [protocolor green];
+                                  #         float blue = [protocolor blue];
+                                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                  #         float alpha = 1.0;
+                                  #         if (alpha_wrapper != nil) {
+                                  #           alpha = [alpha_wrapper value];
+                                  #         }
+                                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                  #      }
+                                  #
+                                  #      static Color* toProto(UIColor* color) {
+                                  #          CGFloat red, green, blue, alpha;
+                                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                  #            return nil;
+                                  #          }
+                                  #          Color* result = [[Color alloc] init];
+                                  #          [result setRed:red];
+                                  #          [result setGreen:green];
+                                  #          [result setBlue:blue];
+                                  #          if (alpha &lt;= 0.9999) {
+                                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                  #          }
+                                  #          [result autorelease];
+                                  #          return result;
+                                  #     }
+                                  #     // ...
+                                  #
+                                  #  Example (JavaScript):
+                                  #
+                                  #     // ...
+                                  #
+                                  #     var protoToCssColor = function(rgb_color) {
+                                  #        var redFrac = rgb_color.red || 0.0;
+                                  #        var greenFrac = rgb_color.green || 0.0;
+                                  #        var blueFrac = rgb_color.blue || 0.0;
+                                  #        var red = Math.floor(redFrac * 255);
+                                  #        var green = Math.floor(greenFrac * 255);
+                                  #        var blue = Math.floor(blueFrac * 255);
+                                  #
+                                  #        if (!('alpha' in rgb_color)) {
+                                  #           return rgbToCssColor_(red, green, blue);
+                                  #        }
+                                  #
+                                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                  #        var rgbParams = [red, green, blue].join(',');
+                                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                  #     };
+                                  #
+                                  #     var rgbToCssColor_ = function(red, green, blue) {
+                                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                  #       var hexString = rgbNumber.toString(16);
+                                  #       var missingZeros = 6 - hexString.length;
+                                  #       var resultBuilder = ['#'];
+                                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                                  #          resultBuilder.push('0');
+                                  #       }
+                                  #       resultBuilder.push(hexString);
+                                  #       return resultBuilder.join('');
+                                  #     };
+                                  #
+                                  #     // ...
+                                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                    # the final pixel color is defined by the equation:
+                                    #
+                                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                    #
+                                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                                    # a value of 0.0 corresponds to a completely transparent color. This
+                                    # uses a wrapper message rather than a simple float scalar so that it is
+                                    # possible to distinguish between a default value and the value being unset.
+                                    # If omitted, this color object is to be rendered as a solid color
+                                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                              },
+                            },
                             "strikethrough": True or False, # True if the text has a strikethrough.
                             "fontFamily": "A String", # The font family.
                             "fontSize": 42, # The size of the font.
@@ -35745,6 +73688,16 @@
             { # A group over an interval of rows or columns on a sheet, which can contain or
                 # be contained within other groups. A group can be collapsed or expanded as a
                 # unit on the sheet.
+              "depth": 42, # The depth of the group, representing how many groups have a range that
+                  # wholly contains the range of this group.
+              "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
+                  # collapsed if an overlapping group at a shallower depth is expanded.
+                  #
+                  # A true value does not imply that all dimensions within the group are
+                  # hidden, since a dimension's visibility can change independently from this
+                  # group property. However, when this property is updated, all dimensions
+                  # within it are set to hidden if this field is true, or set to visible if
+                  # this field is false.
               "range": { # A range along a single dimension on a sheet. # The range over which this group exists.
                   # All indexes are zero-based.
                   # Indexes are half open: the start index is inclusive
@@ -35755,16 +73708,6 @@
                 "sheetId": 42, # The sheet this span is on.
                 "dimension": "A String", # The dimension of the span.
               },
-              "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
-                  # collapsed if an overlapping group at a shallower depth is expanded.
-                  #
-                  # A true value does not imply that all dimensions within the group are
-                  # hidden, since a dimension's visibility can change independently from this
-                  # group property. However, when this property is updated, all dimensions
-                  # within it are set to hidden if this field is true, or set to visible if
-                  # this field is false.
-              "depth": 42, # The depth of the group, representing how many groups have a range that
-                  # wholly contains the range of this group.
             },
           ],
         },
@@ -35825,9 +73768,164 @@
             # * a combination of the ISO language code and country code, such as `en_US`
             #
             # Note: when updating this field, not all locales/languages are supported.
+        "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
+        "spreadsheetTheme": { # Represents spreadsheet theme # Theme applied to the spreadsheet.
+          "themeColors": [ # The spreadsheet theme color pairs. To update you must provide all theme
+              # color pairs.
+            { # A pair mapping a spreadsheet theme color type to the concrete color it
+                # represents.
+              "color": { # A color value. # The concrete color corresponding to the theme color type.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "colorType": "A String", # The type of the spreadsheet theme color.
+            },
+          ],
+          "primaryFontFamily": "A String", # / Name of the primary font family.
+        },
         "defaultFormat": { # The format of a cell. # The default format of all cells in the spreadsheet.
             # CellData.effectiveFormat will not be set if
             # the cell's format is equal to this default format. This field is read-only.
+          "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+              # When updating padding, every field must be specified.
+            "top": 42, # The top padding of the cell.
+            "left": 42, # The left padding of the cell.
+            "right": 42, # The right padding of the cell.
+            "bottom": 42, # The bottom padding of the cell.
+          },
           "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
             "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                 # the user's locale will be used if necessary for the given type.
@@ -35837,12 +73935,143 @@
                 # When writing, this field must be set.
           },
           "textDirection": "A String", # The direction of the text in the cell.
-          "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-              # When updating padding, every field must be specified.
-            "top": 42, # The top padding of the cell.
-            "left": 42, # The left padding of the cell.
-            "right": 42, # The right padding of the cell.
-            "bottom": 42, # The bottom padding of the cell.
+          "backgroundColorStyle": { # A color value. # The background color of the cell.
+              # If background_color is also set, this field takes precedence.
+            "themeColor": "A String", # Theme color.
+            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
           },
           "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
           "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -35915,14 +74144,14 @@
               #
               #      static Color* toProto(UIColor* color) {
               #          CGFloat red, green, blue, alpha;
-              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
               #            return nil;
               #          }
               #          Color* result = [[Color alloc] init];
               #          [result setRed:red];
               #          [result setGreen:green];
               #          [result setBlue:blue];
-              #          if (alpha <= 0.9999) {
+              #          if (alpha &lt;= 0.9999) {
               #            [result setAlpha:floatWrapperWithValue(alpha)];
               #          }
               #          [result autorelease];
@@ -35952,11 +74181,11 @@
               #     };
               #
               #     var rgbToCssColor_ = function(red, green, blue) {
-              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
               #       var hexString = rgbNumber.toString(16);
               #       var missingZeros = 6 - hexString.length;
               #       var resultBuilder = ['#'];
-              #       for (var i = 0; i < missingZeros; i++) {
+              #       for (var i = 0; i &lt; missingZeros; i++) {
               #          resultBuilder.push('0');
               #       }
               #       resultBuilder.push(hexString);
@@ -36052,14 +74281,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -36089,11 +74318,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -36118,284 +74347,144 @@
               },
               "width": 42, # The width of the border, in pixels.
                   # Deprecated; the width is determined by the "style" field.
-              "style": "A String", # The style of the border.
-            },
-            "right": { # A border along a cell. # The right border of the cell.
-              "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
+              "colorStyle": { # A color value. # The color of the border.
+                  # If color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
                     #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
                     #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
               },
-              "width": 42, # The width of the border, in pixels.
-                  # Deprecated; the width is determined by the "style" field.
-              "style": "A String", # The style of the border.
-            },
-            "bottom": { # A border along a cell. # The bottom border of the cell.
-              "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
-                    #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                    #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-              },
-              "width": 42, # The width of the border, in pixels.
-                  # Deprecated; the width is determined by the "style" field.
               "style": "A String", # The style of the border.
             },
             "left": { # A border along a cell. # The left border of the cell.
@@ -36469,14 +74558,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -36506,11 +74595,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -36535,6 +74624,698 @@
               },
               "width": 42, # The width of the border, in pixels.
                   # Deprecated; the width is determined by the "style" field.
+              "colorStyle": { # A color value. # The color of the border.
+                  # If color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "style": "A String", # The style of the border.
+            },
+            "right": { # A border along a cell. # The right border of the cell.
+              "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "width": 42, # The width of the border, in pixels.
+                  # Deprecated; the width is determined by the "style" field.
+              "colorStyle": { # A color value. # The color of the border.
+                  # If color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "style": "A String", # The style of the border.
+            },
+            "bottom": { # A border along a cell. # The bottom border of the cell.
+              "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "width": 42, # The width of the border, in pixels.
+                  # Deprecated; the width is determined by the "style" field.
+              "colorStyle": { # A color value. # The color of the border.
+                  # If color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
               "style": "A String", # The style of the border.
             },
           },
@@ -36632,14 +75413,14 @@
                 #
                 #      static Color* toProto(UIColor* color) {
                 #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                 #            return nil;
                 #          }
                 #          Color* result = [[Color alloc] init];
                 #          [result setRed:red];
                 #          [result setGreen:green];
                 #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
+                #          if (alpha &lt;= 0.9999) {
                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                 #          }
                 #          [result autorelease];
@@ -36669,11 +75450,11 @@
                 #     };
                 #
                 #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                 #       var hexString = rgbNumber.toString(16);
                 #       var missingZeros = 6 - hexString.length;
                 #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
+                #       for (var i = 0; i &lt; missingZeros; i++) {
                 #          resultBuilder.push('0');
                 #       }
                 #       resultBuilder.push(hexString);
@@ -36697,6 +75478,144 @@
               "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
             },
             "bold": True or False, # True if the text is bold.
+            "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                # If foreground_color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
             "strikethrough": True or False, # True if the text has a strikethrough.
             "fontFamily": "A String", # The font family.
             "fontSize": 42, # The size of the font.
@@ -36705,10 +75624,9 @@
           },
           "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
         },
-        "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
         "iterativeCalculationSettings": { # Settings to control how circular dependencies are resolved with iterative # Determines whether and how circular references are resolved with iterative
-            # calculation.  Absence of this field means that circular references will
-            # result in calculation errors.
+            # calculation.  Absence of this field means that circular references result
+            # in calculation errors.
             # calculation.
           "convergenceThreshold": 3.14, # When iterative calculation is enabled and successive results differ by
               # less than this threshold value, the calculation rounds stop.
@@ -36723,6 +75641,1211 @@
     "replies": [ # The reply of the updates.  This maps 1:1 with the updates, although
         # replies to some requests may be empty.
       { # A single response from an update.
+        "addSlicer": { # The result of adding a slicer to a spreadsheet. # A reply from adding a slicer.
+          "slicer": { # A slicer in a sheet. # The newly added slicer.
+            "position": { # The position of an embedded object such as a chart. # The position of the slicer. Note that slicer can be positioned only on
+                # existing sheet. Also, width and height of slicer can be automatically
+                # adjusted to keep it within permitted limits.
+              "newSheet": True or False, # If true, the embedded object is put on a new sheet whose ID
+                  # is chosen for you. Used only when writing.
+              "sheetId": 42, # The sheet this is on. Set only if the embedded object
+                  # is on its own sheet. Must be non-negative.
+              "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid.
+                "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to.
+                    # All indexes are zero-based.
+                  "rowIndex": 42, # The row index of the coordinate.
+                  "columnIndex": 42, # The column index of the coordinate.
+                  "sheetId": 42, # The sheet this coordinate is on.
+                },
+                "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
+                    # from the anchor cell.
+                "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
+                "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
+                    # from the anchor cell.
+                "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
+              },
+            },
+            "spec": { # The specifications of a slicer. # The specification of the slicer.
+              "backgroundColorStyle": { # A color value. # The background color of the slicer.
+                  # If background_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "dataRange": { # A range on a sheet. # The data range of the slicer.
+                  # All indexes are zero-based.
+                  # Indexes are half open, e.g the start index is inclusive
+                  # and the end index is exclusive -- [start_index, end_index).
+                  # Missing indexes indicate the range is unbounded on that side.
+                  #
+                  # For example, if `"Sheet1"` is sheet ID 0, then:
+                  #
+                  #   `Sheet1!A1:A1 == sheet_id: 0,
+                  #                   start_row_index: 0, end_row_index: 1,
+                  #                   start_column_index: 0, end_column_index: 1`
+                  #
+                  #   `Sheet1!A3:B4 == sheet_id: 0,
+                  #                   start_row_index: 2, end_row_index: 4,
+                  #                   start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1!A:B == sheet_id: 0,
+                  #                 start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1!A5:B == sheet_id: 0,
+                  #                  start_row_index: 4,
+                  #                  start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1 == sheet_id:0`
+                  #
+                  # The start index must always be less than or equal to the end index.
+                  # If the start index equals the end index, then the range is empty.
+                  # Empty ranges are typically not meaningful and are usually rendered in the
+                  # UI as `#REF!`.
+                "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "sheetId": 42, # The sheet this range is on.
+                "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              },
+              "title": "A String", # The title of the slicer.
+              "applyToPivotTables": True or False, # True if the filter should apply to pivot tables.
+                  # If not set, default to `True`.
+              "columnIndex": 42, # The column index in the data table on which the filter is applied to.
+              "horizontalAlignment": "A String", # The horizontal alignment of title in the slicer.
+                  # If unspecified, defaults to `LEFT`
+              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the slicer.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "textFormat": { # The format of a run of text in a cell. # The text format of title in the slicer.
+                  # Absent values indicate that the field isn't specified.
+                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "bold": True or False, # True if the text is bold.
+                "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                    # If foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "strikethrough": True or False, # True if the text has a strikethrough.
+                "fontFamily": "A String", # The font family.
+                "fontSize": 42, # The size of the font.
+                "italic": True or False, # True if the text is italicized.
+                "underline": True or False, # True if the text is underlined.
+              },
+              "filterCriteria": { # Criteria for showing/hiding rows in a filter or filter view. # The filtering criteria of the slicer.
+                "visibleBackgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to filter by; only cells with this fill color are
+                    # shown. Mutually exclusive with visible_foreground_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "hiddenValues": [ # Values that should be hidden.
+                  "A String",
+                ],
+                "visibleBackgroundColorStyle": { # A color value. # The background fill color to filter by; only cells with this fill color are
+                    # shown. This field is mutually exclusive with visible_foreground_color,
+                    # and must be set to an RGB-type color. If visible_background_color is
+                    # also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColorStyle": { # A color value. # The foreground color to filter by; only cells with this foreground color
+                    # are shown. This field is mutually exclusive with
+                    # visible_background_color, and must be set to an RGB-type color. If
+                    # visible_foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to filter by; only cells with this foreground color
+                    # are shown. Mutually exclusive with visible_background_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
+                    # (This does not override hidden_values -- if a value is listed there,
+                    #  it will still be hidden.)
+                    # BooleanConditions are used by conditional formatting,
+                    # data validation, and the criteria in filters.
+                  "values": [ # The values of the condition. The number of supported values depends
+                      # on the condition type.  Some support zero values,
+                      # others one or two values,
+                      # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                    { # The value of the condition.
+                      "relativeDate": "A String", # A relative date (based on the current date).
+                          # Valid only if the type is
+                          # DATE_BEFORE,
+                          # DATE_AFTER,
+                          # DATE_ON_OR_BEFORE or
+                          # DATE_ON_OR_AFTER.
+                          #
+                          # Relative dates are not supported in data validation.
+                          # They are supported only in conditional formatting and
+                          # conditional filters.
+                      "userEnteredValue": "A String", # A value the condition is based on.
+                          # The value is parsed as if the user typed into a cell.
+                          # Formulas are supported (and must begin with an `=` or a '+').
+                    },
+                  ],
+                  "type": "A String", # The type of condition.
+                },
+              },
+            },
+            "slicerId": 42, # The ID of the slicer.
+          },
+        },
         "duplicateFilterView": { # The result of a filter view being duplicated. # A reply from duplicating a filter view.
           "filter": { # A filter view. # The newly created filter.
             "title": "A String", # The name of the filter view.
@@ -36772,6 +76895,556 @@
             "sortSpecs": [ # The sort order per column. Later specifications are used when values
                 # are equal in the earlier specifications.
               { # A sort order associated with a specific column or row.
+                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to sort by; cells with this foreground color are
+                    # sorted to the top. Mutually exclusive with background_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to sort by; cells with this fill color are sorted
+                    # to the top. Mutually exclusive with foreground_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "foregroundColorStyle": { # A color value. # The foreground color to sort by; cells with this foreground color are
+                    # sorted to the top. Mutually exclusive with background_color, and must
+                    # be an RGB-type color. If foreground_color is also set, this field takes
+                    # precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "backgroundColorStyle": { # A color value. # The background fill color to sort by; cells with this fill color are sorted
+                    # to the top. Mutually exclusive with foreground_color, and must be an
+                    # RGB-type color. If background_color is also set, this field takes
+                    # precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "sortOrder": "A String", # The order data should be sorted.
                 "dimensionIndex": 42, # The dimension the sort should be applied to.
               },
@@ -36780,11 +77453,561 @@
                 # The map's key is the column index, and the value is the criteria for
                 # that column.
               "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
+                "visibleBackgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to filter by; only cells with this fill color are
+                    # shown. Mutually exclusive with visible_foreground_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
                 "hiddenValues": [ # Values that should be hidden.
                   "A String",
                 ],
+                "visibleBackgroundColorStyle": { # A color value. # The background fill color to filter by; only cells with this fill color are
+                    # shown. This field is mutually exclusive with visible_foreground_color,
+                    # and must be set to an RGB-type color. If visible_background_color is
+                    # also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColorStyle": { # A color value. # The foreground color to filter by; only cells with this foreground color
+                    # are shown. This field is mutually exclusive with
+                    # visible_background_color, and must be set to an RGB-type color. If
+                    # visible_foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to filter by; only cells with this foreground color
+                    # are shown. Mutually exclusive with visible_background_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
                 "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
-                    # (This does not override hiddenValues -- if a value is listed there,
+                    # (This does not override hidden_values -- if a value is listed there,
                     #  it will still be hidden.)
                     # BooleanConditions are used by conditional formatting,
                     # data validation, and the criteria in filters.
@@ -36912,14 +78135,14 @@
                 #
                 #      static Color* toProto(UIColor* color) {
                 #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                 #            return nil;
                 #          }
                 #          Color* result = [[Color alloc] init];
                 #          [result setRed:red];
                 #          [result setGreen:green];
                 #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
+                #          if (alpha &lt;= 0.9999) {
                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                 #          }
                 #          [result autorelease];
@@ -36949,11 +78172,11 @@
                 #     };
                 #
                 #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                 #       var hexString = rgbNumber.toString(16);
                 #       var missingZeros = 6 - hexString.length;
                 #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
+                #       for (var i = 0; i &lt; missingZeros; i++) {
                 #          resultBuilder.push('0');
                 #       }
                 #       resultBuilder.push(hexString);
@@ -36977,31 +78200,185 @@
               "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
             },
             "hidden": True or False, # True if the sheet is hidden in the UI, false if it's visible.
+            "tabColorStyle": { # A color value. # The color of the tab in the UI.
+                # If tab_color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
             "sheetId": 42, # The ID of the sheet. Must be non-negative.
                 # This field cannot be changed once set.
           },
         },
-        "updateEmbeddedObjectPosition": { # The result of updating an embedded object's position. # A reply from updating an embedded object's position.
-          "position": { # The position of an embedded object such as a chart. # The new position of the embedded object.
-            "newSheet": True or False, # If true, the embedded object is put on a new sheet whose ID
-                # is chosen for you. Used only when writing.
-            "sheetId": 42, # The sheet this is on. Set only if the embedded object
-                # is on its own sheet. Must be non-negative.
-            "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid.
-              "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to.
-                  # All indexes are zero-based.
-                "rowIndex": 42, # The row index of the coordinate.
-                "columnIndex": 42, # The column index of the coordinate.
-                "sheetId": 42, # The sheet this coordinate is on.
+        "deleteDeveloperMetadata": { # The response from deleting developer metadata. # A reply from deleting a developer metadata entry.
+          "deletedDeveloperMetadata": [ # The metadata that was deleted.
+            { # Developer metadata associated with a location or object in a spreadsheet.
+                # Developer metadata may be used to associate arbitrary data with various
+                # parts of a spreadsheet and will remain associated at those locations as they
+                # move around and the spreadsheet is edited.  For example, if developer
+                # metadata is associated with row 5 and another row is then subsequently
+                # inserted above row 5, that original metadata will still be associated with
+                # the row it was first associated with (what is now row 6). If the associated
+                # object is deleted its metadata is deleted too.
+              "metadataId": 42, # The spreadsheet-scoped unique ID that identifies the metadata. IDs may be
+                  # specified when metadata is created, otherwise one will be randomly
+                  # generated and assigned. Must be positive.
+              "metadataValue": "A String", # Data associated with the metadata's key.
+              "location": { # A location where metadata may be associated in a spreadsheet. # The location where the metadata is associated.
+                "locationType": "A String", # The type of location this object represents.  This field is read-only.
+                "dimensionRange": { # A range along a single dimension on a sheet. # Represents the row or column when metadata is associated with
+                    # a dimension. The specified DimensionRange must represent a single row
+                    # or column; it cannot be unbounded or span multiple rows or columns.
+                    # All indexes are zero-based.
+                    # Indexes are half open: the start index is inclusive
+                    # and the end index is exclusive.
+                    # Missing indexes indicate the range is unbounded on that side.
+                  "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
+                  "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
+                  "sheetId": 42, # The sheet this span is on.
+                  "dimension": "A String", # The dimension of the span.
+                },
+                "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+                "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
               },
-              "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
-              "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
-                  # from the anchor cell.
-              "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
-                  # from the anchor cell.
-              "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
+              "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
+                  # specified.
+              "metadataKey": "A String", # The metadata key. There may be multiple metadata in a spreadsheet with the
+                  # same key.  Developer metadata must always have a key specified.
             },
-          },
+          ],
         },
         "addChart": { # The result of adding a chart to a spreadsheet. # A reply from adding a chart.
           "chart": { # A chart embedded in a sheet. # The newly added chart.
@@ -37018,9 +78395,9 @@
                   "columnIndex": 42, # The column index of the coordinate.
                   "sheetId": 42, # The sheet this coordinate is on.
                 },
-                "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
                 "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
                     # from the anchor cell.
+                "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
                 "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
                     # from the anchor cell.
                 "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
@@ -37033,149 +78410,140 @@
               "altText": "A String", # The alternative text that describes the chart.  This is often used
                   # for accessibility.
               "subtitle": "A String", # The subtitle of the chart.
-              "subtitleTextFormat": { # The format of a run of text in a cell. # The subtitle text format.
-                  # Strikethrough and underline are not supported.
-                  # Absent values indicate that the field isn't specified.
-                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
+              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the entire chart.
+                  # Not applicable to Org charts.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
                     #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
                     #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                },
-                "bold": True or False, # True if the text is bold.
-                "strikethrough": True or False, # True if the text has a strikethrough.
-                "fontFamily": "A String", # The font family.
-                "fontSize": 42, # The size of the font.
-                "italic": True or False, # True if the text is italicized.
-                "underline": True or False, # True if the text is underlined.
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
               "title": "A String", # The title of the chart.
               "titleTextFormat": { # The format of a run of text in a cell. # The title text format.
@@ -37251,14 +78619,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -37288,11 +78656,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -37316,20 +78684,158 @@
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
                 "bold": True or False, # True if the text is bold.
+                "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                    # If foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "strikethrough": True or False, # True if the text has a strikethrough.
                 "fontFamily": "A String", # The font family.
                 "fontSize": 42, # The size of the font.
                 "italic": True or False, # True if the text is italicized.
                 "underline": True or False, # True if the text is underlined.
               },
-              "treemapChart": { # A <a href="/chart/interactive/docs/gallery/treemap">Treemap chart</a>. # A treemap chart specification.
+              "treemapChart": { # A &lt;a href="/chart/interactive/docs/gallery/treemap"&gt;Treemap chart&lt;/a&gt;. # A treemap chart specification.
                 "parentLabels": { # The data included in a domain or series. # The data the contains the treemap cells' parent labels.
                   "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                     "sources": [ # The ranges of data for a series or domain.
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -37381,66 +78887,139 @@
                     ],
                   },
                 },
-                "sizeData": { # The data included in a domain or series. # The data that determines the size of each treemap data cell. This data is
-                    # expected to be numeric. The cells corresponding to non-numeric or missing
-                    # data will not be rendered. If color_data is not specified, this data
-                    # is used to determine data cell background colors as well.
-                  "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
-                    "sources": [ # The ranges of data for a series or domain.
-                        # Exactly one dimension must have a length of 1,
-                        # and all sources in the list must have the same dimension
-                        # with length 1.
-                        # The domain (if it exists) & all series must have the same number
-                        # of source ranges. If using more than one source range, then the source
-                        # range at a given offset must be in order and contiguous across the domain
-                        # and series.
-                        #
-                        # For example, these are valid configurations:
-                        #
-                        #     domain sources: A1:A5
-                        #     series1 sources: B1:B5
-                        #     series2 sources: D6:D10
-                        #
-                        #     domain sources: A1:A5, C10:C12
-                        #     series1 sources: B1:B5, D10:D12
-                        #     series2 sources: C1:C5, E10:E12
-                      { # A range on a sheet.
-                          # All indexes are zero-based.
-                          # Indexes are half open, e.g the start index is inclusive
-                          # and the end index is exclusive -- [start_index, end_index).
-                          # Missing indexes indicate the range is unbounded on that side.
-                          #
-                          # For example, if `"Sheet1"` is sheet ID 0, then:
-                          #
-                          #   `Sheet1!A1:A1 == sheet_id: 0,
-                          #                   start_row_index: 0, end_row_index: 1,
-                          #                   start_column_index: 0, end_column_index: 1`
-                          #
-                          #   `Sheet1!A3:B4 == sheet_id: 0,
-                          #                   start_row_index: 2, end_row_index: 4,
-                          #                   start_column_index: 0, end_column_index: 2`
-                          #
-                          #   `Sheet1!A:B == sheet_id: 0,
-                          #                 start_column_index: 0, end_column_index: 2`
-                          #
-                          #   `Sheet1!A5:B == sheet_id: 0,
-                          #                  start_row_index: 4,
-                          #                  start_column_index: 0, end_column_index: 2`
-                          #
-                          #   `Sheet1 == sheet_id:0`
-                          #
-                          # The start index must always be less than or equal to the end index.
-                          # If the start index equals the end index, then the range is empty.
-                          # Empty ranges are typically not meaningful and are usually rendered in the
-                          # UI as `#REF!`.
-                        "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-                        "sheetId": 42, # The sheet this range is on.
-                        "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-                      },
-                    ],
-                  },
+                "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for header cells.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
                 "hideTooltips": True or False, # True to hide tooltips.
                 "colorScale": { # A color scale for a treemap chart. # The color scale for data cells in the treemap chart. Data cells are
@@ -37459,6 +79038,142 @@
                     # Cells with missing or non-numeric color values will have
                     # noDataColor as their background
                     # color.
+                  "maxValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value greater than or equal
+                      # to maxValue. Defaults to #109618 if not
+                      # specified.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
                   "noDataColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells that have no color data associated with
                       # them. Defaults to #000000 if not specified.
                       # for simplicity of conversion to/from color representations in various
@@ -37530,14 +79245,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -37567,11 +79282,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -37594,6 +79309,562 @@
                     "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
+                  "midValueColorStyle": { # A color value. # The background color for cells with a color value at the midpoint between
+                      # minValue and
+                      # maxValue. Defaults to #efe6dc if not
+                      # specified.
+                      # If mid_value_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "maxValueColorStyle": { # A color value. # The background color for cells with a color value greater than or equal
+                      # to maxValue. Defaults to #109618 if not
+                      # specified.
+                      # If max_value_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "minValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value less than or equal to
+                      # minValue. Defaults to #dc3912 if not
+                      # specified.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "noDataColorStyle": { # A color value. # The background color for cells that have no color data associated with
+                      # them. Defaults to #000000 if not specified.
+                      # If no_data_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "midValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value at the midpoint between
                       # minValue and
                       # maxValue. Defaults to #efe6dc if not
@@ -37667,14 +79938,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -37704,11 +79975,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -37731,277 +80002,145 @@
                     "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
-                  "minValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value less than or equal to
+                  "minValueColorStyle": { # A color value. # The background color for cells with a color value less than or equal to
                       # minValue. Defaults to #dc3912 if not
                       # specified.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
+                      # If min_value_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
                         #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
                         #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                  },
-                  "maxValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value greater than or equal
-                      # to maxValue. Defaults to #109618 if not
-                      # specified.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
+                        # Example (Java):
                         #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #      import com.google.type.Color;
                         #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
                   },
                 },
                 "labels": { # The data included in a domain or series. # The data that contains the treemap cell labels.
@@ -38010,7 +80149,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -38072,7 +80211,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -38128,147 +80267,74 @@
                     # have the same color as cells with this value. If not specified, defaults
                     # to the actual maximum value from color_data, or the maximum value from
                     # size_data if color_data is not specified.
+                "levels": 42, # The number of data levels to show on the treemap chart. These levels are
+                    # interactive and are shown with their labels. Defaults to 2 if not
+                    # specified.
                 "minValue": 3.14, # The minimum possible data value. Cells with values less than this will
                     # have the same color as cells with this value. If not specified, defaults
                     # to the actual minimum value from color_data, or the minimum value from
                     # size_data if color_data is not specified.
-                "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for header cells.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                "sizeData": { # The data included in a domain or series. # The data that determines the size of each treemap data cell. This data is
+                    # expected to be numeric. The cells corresponding to non-numeric or missing
+                    # data will not be rendered. If color_data is not specified, this data
+                    # is used to determine data cell background colors as well.
+                  "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                    "sources": [ # The ranges of data for a series or domain.
+                        # Exactly one dimension must have a length of 1,
+                        # and all sources in the list must have the same dimension
+                        # with length 1.
+                        # The domain (if it exists) &amp; all series must have the same number
+                        # of source ranges. If using more than one source range, then the source
+                        # range at a given offset must be in order and contiguous across the domain
+                        # and series.
+                        #
+                        # For example, these are valid configurations:
+                        #
+                        #     domain sources: A1:A5
+                        #     series1 sources: B1:B5
+                        #     series2 sources: D6:D10
+                        #
+                        #     domain sources: A1:A5, C10:C12
+                        #     series1 sources: B1:B5, D10:D12
+                        #     series2 sources: C1:C5, E10:E12
+                      { # A range on a sheet.
+                          # All indexes are zero-based.
+                          # Indexes are half open, e.g the start index is inclusive
+                          # and the end index is exclusive -- [start_index, end_index).
+                          # Missing indexes indicate the range is unbounded on that side.
+                          #
+                          # For example, if `"Sheet1"` is sheet ID 0, then:
+                          #
+                          #   `Sheet1!A1:A1 == sheet_id: 0,
+                          #                   start_row_index: 0, end_row_index: 1,
+                          #                   start_column_index: 0, end_column_index: 1`
+                          #
+                          #   `Sheet1!A3:B4 == sheet_id: 0,
+                          #                   start_row_index: 2, end_row_index: 4,
+                          #                   start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A:B == sheet_id: 0,
+                          #                 start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A5:B == sheet_id: 0,
+                          #                  start_row_index: 4,
+                          #                  start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1 == sheet_id:0`
+                          #
+                          # The start index must always be less than or equal to the end index.
+                          # If the start index equals the end index, then the range is empty.
+                          # Empty ranges are typically not meaningful and are usually rendered in the
+                          # UI as `#REF!`.
+                        "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "sheetId": 42, # The sheet this range is on.
+                        "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      },
+                    ],
+                  },
                 },
-                "levels": 42, # The number of data levels to show on the treemap chart. These levels are
-                    # interactive and are shown with their labels. Defaults to 2 if not
-                    # specified.
                 "hintedLevels": 42, # The number of additional data levels beyond the labeled levels to be shown
                     # on the treemap chart. These levels are not interactive and are shown
                     # without their labels. Defaults to 0 if not specified.
@@ -38344,14 +80410,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -38381,11 +80447,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -38409,26 +80475,1706 @@
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
                   "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "strikethrough": True or False, # True if the text has a strikethrough.
                   "fontFamily": "A String", # The font family.
                   "fontSize": 42, # The size of the font.
                   "italic": True or False, # True if the text is italicized.
                   "underline": True or False, # True if the text is underlined.
                 },
+                "headerColorStyle": { # A color value. # The background color for header cells.
+                    # If header_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+              },
+              "scorecardChart": { # A scorecard chart. Scorecard charts are used to highlight key performance # A scorecard chart specification.
+                  # indicators, known as KPIs, on the spreadsheet. A scorecard chart can
+                  # represent things like total sales, average cost, or a top selling item. You
+                  # can specify a single data value, or aggregate over a range of data.
+                  # Percentage or absolute difference from a baseline value can be highlighted,
+                  # like changes over time.
+                "numberFormatSource": "A String", # The number format source used in the scorecard chart.
+                    # This field is optional.
+                "customFormatOptions": { # Custom number formatting options for chart attributes. # Custom formatting options for numeric key/baseline values in scorecard
+                    # chart. This field is used only when number_format_source is set to
+                    # CUSTOM. This field is optional.
+                  "prefix": "A String", # Custom prefix to be prepended to the chart attribute.
+                      # This field is optional.
+                  "suffix": "A String", # Custom suffix to be appended to the chart attribute.
+                      # This field is optional.
+                },
+                "keyValueFormat": { # Formatting options for key value. # Formatting options for key value.
+                  "position": { # Position settings for text. # Specifies the horizontal text positioning of key value.
+                      # This field is optional. If not specified, default positioning is used.
+                    "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
+                  },
+                  "textFormat": { # The format of a run of text in a cell. # Text formatting options for key value.
+                      # Absent values indicate that the field isn't specified.
+                    "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "bold": True or False, # True if the text is bold.
+                    "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                        # If foreground_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "strikethrough": True or False, # True if the text has a strikethrough.
+                    "fontFamily": "A String", # The font family.
+                    "fontSize": 42, # The size of the font.
+                    "italic": True or False, # True if the text is italicized.
+                    "underline": True or False, # True if the text is underlined.
+                  },
+                },
+                "aggregateType": "A String", # The aggregation type for key and baseline chart data in scorecard chart.
+                    # This field is optional.
+                "baselineValueFormat": { # Formatting options for baseline value. # Formatting options for baseline value.
+                    # This field is needed only if baseline_value_data is specified.
+                  "description": "A String", # Description which is appended after the baseline value.
+                      # This field is optional.
+                  "negativeColor": { # Represents a color in the RGBA color space. This representation is designed # Color to be used, in case baseline value represents a negative change for
+                      # key value. This field is optional.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "comparisonType": "A String", # The comparison type of key value with baseline value.
+                  "positiveColorStyle": { # A color value. # Color to be used, in case baseline value represents a positive change for
+                      # key value. This field is optional.
+                      # If positive_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "negativeColorStyle": { # A color value. # Color to be used, in case baseline value represents a negative change for
+                      # key value. This field is optional.
+                      # If negative_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "position": { # Position settings for text. # Specifies the horizontal text positioning of baseline value.
+                      # This field is optional. If not specified, default positioning is used.
+                    "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
+                  },
+                  "textFormat": { # The format of a run of text in a cell. # Text formatting options for baseline value.
+                      # Absent values indicate that the field isn't specified.
+                    "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "bold": True or False, # True if the text is bold.
+                    "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                        # If foreground_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "strikethrough": True or False, # True if the text has a strikethrough.
+                    "fontFamily": "A String", # The font family.
+                    "fontSize": 42, # The size of the font.
+                    "italic": True or False, # True if the text is italicized.
+                    "underline": True or False, # True if the text is underlined.
+                  },
+                  "positiveColor": { # Represents a color in the RGBA color space. This representation is designed # Color to be used, in case baseline value represents a positive change for
+                      # key value. This field is optional.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "keyValueData": { # The data included in a domain or series. # The data for scorecard key value.
+                  "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                    "sources": [ # The ranges of data for a series or domain.
+                        # Exactly one dimension must have a length of 1,
+                        # and all sources in the list must have the same dimension
+                        # with length 1.
+                        # The domain (if it exists) &amp; all series must have the same number
+                        # of source ranges. If using more than one source range, then the source
+                        # range at a given offset must be in order and contiguous across the domain
+                        # and series.
+                        #
+                        # For example, these are valid configurations:
+                        #
+                        #     domain sources: A1:A5
+                        #     series1 sources: B1:B5
+                        #     series2 sources: D6:D10
+                        #
+                        #     domain sources: A1:A5, C10:C12
+                        #     series1 sources: B1:B5, D10:D12
+                        #     series2 sources: C1:C5, E10:E12
+                      { # A range on a sheet.
+                          # All indexes are zero-based.
+                          # Indexes are half open, e.g the start index is inclusive
+                          # and the end index is exclusive -- [start_index, end_index).
+                          # Missing indexes indicate the range is unbounded on that side.
+                          #
+                          # For example, if `"Sheet1"` is sheet ID 0, then:
+                          #
+                          #   `Sheet1!A1:A1 == sheet_id: 0,
+                          #                   start_row_index: 0, end_row_index: 1,
+                          #                   start_column_index: 0, end_column_index: 1`
+                          #
+                          #   `Sheet1!A3:B4 == sheet_id: 0,
+                          #                   start_row_index: 2, end_row_index: 4,
+                          #                   start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A:B == sheet_id: 0,
+                          #                 start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A5:B == sheet_id: 0,
+                          #                  start_row_index: 4,
+                          #                  start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1 == sheet_id:0`
+                          #
+                          # The start index must always be less than or equal to the end index.
+                          # If the start index equals the end index, then the range is empty.
+                          # Empty ranges are typically not meaningful and are usually rendered in the
+                          # UI as `#REF!`.
+                        "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "sheetId": 42, # The sheet this range is on.
+                        "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      },
+                    ],
+                  },
+                },
+                "scaleFactor": 3.14, # Value to scale scorecard key and baseline value. For example, a factor of
+                    # 10 can be used to divide all values in the chart by 10.
+                    # This field is optional.
+                "baselineValueData": { # The data included in a domain or series. # The data for scorecard baseline value.
+                    # This field is optional.
+                  "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                    "sources": [ # The ranges of data for a series or domain.
+                        # Exactly one dimension must have a length of 1,
+                        # and all sources in the list must have the same dimension
+                        # with length 1.
+                        # The domain (if it exists) &amp; all series must have the same number
+                        # of source ranges. If using more than one source range, then the source
+                        # range at a given offset must be in order and contiguous across the domain
+                        # and series.
+                        #
+                        # For example, these are valid configurations:
+                        #
+                        #     domain sources: A1:A5
+                        #     series1 sources: B1:B5
+                        #     series2 sources: D6:D10
+                        #
+                        #     domain sources: A1:A5, C10:C12
+                        #     series1 sources: B1:B5, D10:D12
+                        #     series2 sources: C1:C5, E10:E12
+                      { # A range on a sheet.
+                          # All indexes are zero-based.
+                          # Indexes are half open, e.g the start index is inclusive
+                          # and the end index is exclusive -- [start_index, end_index).
+                          # Missing indexes indicate the range is unbounded on that side.
+                          #
+                          # For example, if `"Sheet1"` is sheet ID 0, then:
+                          #
+                          #   `Sheet1!A1:A1 == sheet_id: 0,
+                          #                   start_row_index: 0, end_row_index: 1,
+                          #                   start_column_index: 0, end_column_index: 1`
+                          #
+                          #   `Sheet1!A3:B4 == sheet_id: 0,
+                          #                   start_row_index: 2, end_row_index: 4,
+                          #                   start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A:B == sheet_id: 0,
+                          #                 start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A5:B == sheet_id: 0,
+                          #                  start_row_index: 4,
+                          #                  start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1 == sheet_id:0`
+                          #
+                          # The start index must always be less than or equal to the end index.
+                          # If the start index equals the end index, then the range is empty.
+                          # Empty ranges are typically not meaningful and are usually rendered in the
+                          # UI as `#REF!`.
+                        "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "sheetId": 42, # The sheet this range is on.
+                        "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      },
+                    ],
+                  },
+                },
               },
               "titleTextPosition": { # Position settings for text. # The title text position.
                   # This field is optional.
                 "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
               },
+              "backgroundColorStyle": { # A color value. # The background color of the entire chart.
+                  # Not applicable to Org charts.
+                  # If background_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
               "hiddenDimensionStrategy": "A String", # Determines how the charts will use hidden rows or columns.
-              "pieChart": { # A <a href="/chart/interactive/docs/gallery/piechart">pie chart</a>. # A pie chart specification.
+              "pieChart": { # A &lt;a href="/chart/interactive/docs/gallery/piechart"&gt;pie chart&lt;/a&gt;. # A pie chart specification.
                 "series": { # The data included in a domain or series. # The data that covers the one and only series of the pie chart.
                   "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                     "sources": [ # The ranges of data for a series or domain.
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -38486,7 +82232,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -38542,8 +82288,8 @@
                 "legendPosition": "A String", # Where the legend of the pie chart should be drawn.
                 "pieHole": 3.14, # The size of the hole in the pie chart.
               },
-              "candlestickChart": { # A <a href="/chart/interactive/docs/gallery/candlestickchart">candlestick # A candlestick chart specification.
-                  # chart</a>.
+              "candlestickChart": { # A &lt;a href="/chart/interactive/docs/gallery/candlestickchart"&gt;candlestick # A candlestick chart specification.
+                  # chart&lt;/a&gt;.
                 "domain": { # The domain of a CandlestickChart. # The domain data (horizontal axis) for the candlestick chart.  String data
                     # will be treated as discrete labels, other data will be treated as
                     # continuous values.
@@ -38554,7 +82300,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -38619,7 +82365,7 @@
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -38680,7 +82426,7 @@
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -38742,7 +82488,7 @@
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -38804,7 +82550,7 @@
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -38864,140 +82610,287 @@
                   # This field is optional.
                 "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
               },
-              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the entire chart.
-                  # Not applicable to Org charts.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
+              "subtitleTextFormat": { # The format of a run of text in a cell. # The subtitle text format.
+                  # Strikethrough and underline are not supported.
+                  # Absent values indicate that the field isn't specified.
+                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
                     #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
                     #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "bold": True or False, # True if the text is bold.
+                "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                    # If foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "strikethrough": True or False, # True if the text has a strikethrough.
+                "fontFamily": "A String", # The font family.
+                "fontSize": 42, # The size of the font.
+                "italic": True or False, # True if the text is italicized.
+                "underline": True or False, # True if the text is underlined.
               },
               "maximized": True or False, # True to make a chart fill the entire space in which it's rendered with
                   # minimum padding.  False to use the default padding.
@@ -39013,7 +82906,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -39146,14 +83039,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -39183,11 +83076,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -39210,6 +83103,144 @@
                         "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
+                      "colorStyle": { # A color value. # The color of the column.
+                          # If color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "label": "A String", # The label of the column's legend.
                     },
                     "subtotalColumnsStyle": { # Styles for a waterfall chart column. # Styles for all subtotal columns in this series.
@@ -39283,14 +83314,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -39320,11 +83351,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -39347,6 +83378,144 @@
                         "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
+                      "colorStyle": { # A color value. # The color of the column.
+                          # If color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "label": "A String", # The label of the column's legend.
                     },
                     "negativeColumnsStyle": { # Styles for a waterfall chart column. # Styles for all columns in this series with negative values.
@@ -39420,14 +83589,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -39457,11 +83626,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -39484,6 +83653,144 @@
                         "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
+                      "colorStyle": { # A color value. # The color of the column.
+                          # If color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "label": "A String", # The label of the column's legend.
                     },
                     "customSubtotals": [ # Custom subtotal columns appearing in this series. The order in which
@@ -39509,7 +83816,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -39571,6 +83878,8 @@
                   # of charts this supports.
                 "stackedType": "A String", # The stacked type for charts that support vertical stacking.
                     # Applies to Area, Bar, Column, Combo, and Stepped Area charts.
+                "compareMode": "A String", # The behavior of tooltips and data highlighting when hovering on data and
+                    # chart area.
                 "headerCount": 42, # The number of rows or columns in the data that are "headers".
                     # If not set, Google Sheets will guess how many rows are headers based
                     # on the data.
@@ -39581,8 +83890,147 @@
                   { # A single series of data in a chart.
                       # For example, if charting stock prices over time, multiple series may exist,
                       # one for the "Open Price", "High Price", "Low Price" and "Close Price".
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color for elements (i.e. bars, lines, points) associated with this
-                        # series.  If empty, a default color is used.
+                    "colorStyle": { # A color value. # The color for elements (such as bars, lines, and points) associated with
+                        # this series.  If empty, a default color is used.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color for elements (such as bars, lines, and points) associated with
+                        # this series.  If empty, a default color is used.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
                         # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -39652,14 +84100,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -39689,11 +84137,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -39722,7 +84170,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -39781,6 +84229,12 @@
                         # prices.
                         # It is an error to specify an axis that isn't a valid minor axis
                         # for the chart's type.
+                    "type": "A String", # The type of this series. Valid only if the
+                        # chartType is
+                        # COMBO.
+                        # Different types will change the way the series is visualized.
+                        # Only LINE, AREA,
+                        # and COLUMN are supported.
                     "lineStyle": { # Properties that describe the style of a line. # The line style of this series. Valid only if the
                         # chartType is AREA,
                         # LINE, or SCATTER.
@@ -39790,12 +84244,6 @@
                       "width": 42, # The thickness of the line, in px.
                       "type": "A String", # The dash type of the line.
                     },
-                    "type": "A String", # The type of this series. Valid only if the
-                        # chartType is
-                        # COMBO.
-                        # Different types will change the way the series is visualized.
-                        # Only LINE, AREA,
-                        # and COLUMN are supported.
                   },
                 ],
                 "interpolateNulls": True or False, # If some values in a series are missing, gaps may appear in the chart (e.g,
@@ -39805,8 +84253,8 @@
                 "legendPosition": "A String", # The position of the chart legend.
                 "lineSmoothing": True or False, # Gets whether all lines should be rendered smooth or straight by default.
                     # Applies to Line charts.
-                "compareMode": "A String", # The behavior of tooltips and data highlighting when hovering on data and
-                    # chart area.
+                "threeDimensional": True or False, # True to make the chart 3D.
+                    # Applies to Bar and Column charts.
                 "domains": [ # The domain of data this is charting.
                     # Only a single domain is supported.
                   { # The domain of a chart.
@@ -39819,7 +84267,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -39874,13 +84322,10 @@
                   },
                 ],
                 "chartType": "A String", # The type of the chart.
-                "threeDimensional": True or False, # True to make the chart 3D.
-                    # Applies to Bar and Column charts.
                 "axis": [ # The axis on the chart.
                   { # An axis of the chart.
                       # A chart may not have more than one axis per
                       # axis position.
-                    "position": "A String", # The position of this axis.
                     "format": { # The format of a run of text in a cell. # The format of the title.
                         # Only valid if the axis is not associated with the domain.
                         # Absent values indicate that the field isn't specified.
@@ -39954,14 +84399,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -39991,11 +84436,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -40019,21 +84464,168 @@
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
                       "bold": True or False, # True if the text is bold.
+                      "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                          # If foreground_color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "strikethrough": True or False, # True if the text has a strikethrough.
                       "fontFamily": "A String", # The font family.
                       "fontSize": 42, # The size of the font.
                       "italic": True or False, # True if the text is italicized.
                       "underline": True or False, # True if the text is underlined.
                     },
-                    "title": "A String", # The title of this axis. If set, this overrides any title inferred
-                        # from headers of the data.
+                    "position": "A String", # The position of this axis.
+                    "viewWindowOptions": { # The options that define a "view window" for a chart (such as the visible # The view window options for this axis.
+                        # values in an axis).
+                      "viewWindowMin": 3.14, # The minimum numeric value to be shown in this view window. If unset, will
+                          # automatically determine a minimum value that looks good for the data.
+                      "viewWindowMax": 3.14, # The maximum numeric value to be shown in this view window. If unset, will
+                          # automatically determine a maximum value that looks good for the data.
+                      "viewWindowMode": "A String", # The view window's mode.
+                    },
                     "titleTextPosition": { # Position settings for text. # The axis title text position.
                       "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
                     },
+                    "title": "A String", # The title of this axis. If set, this overrides any title inferred
+                        # from headers of the data.
                   },
                 ],
               },
-              "histogramChart": { # A <a href="/chart/interactive/docs/gallery/histogram">histogram chart</a>. # A histogram chart specification.
+              "histogramChart": { # A &lt;a href="/chart/interactive/docs/gallery/histogram"&gt;histogram chart&lt;/a&gt;. # A histogram chart specification.
                   # A histogram chart groups data items into bins, displaying each bin as a
                   # column of stacked items.  Histograms are used to display the distribution
                   # of a dataset.  Each column of items represents a range into which those
@@ -40120,14 +84712,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -40157,11 +84749,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -40184,13 +84776,152 @@
                       "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                       "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                     },
+                    "barColorStyle": { # A color value. # The color of the column representing this series in each bucket.
+                        # This field is optional.
+                        # If bar_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
                     "data": { # The data included in a domain or series. # The data for this histogram series.
                       "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                         "sources": [ # The ranges of data for a series or domain.
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -40253,141 +84984,9 @@
                     # Cannot be negative.
                     # This field is optional.
               },
-              "bubbleChart": { # A <a href="/chart/interactive/docs/gallery/bubblechart">bubble chart</a>. # A bubble chart specification.
-                "bubbleBorderColor": { # Represents a color in the RGBA color space. This representation is designed # The bubble border color.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                },
+              "bubbleChart": { # A &lt;a href="/chart/interactive/docs/gallery/bubblechart"&gt;bubble chart&lt;/a&gt;. # A bubble chart specification.
+                "bubbleOpacity": 3.14, # The opacity of the bubbles between 0 and 1.0.
+                    # 0 is fully transparent and 1 is fully opaque.
                 "domain": { # The data included in a domain or series. # The data containing the bubble x-values.  These values locate the bubbles
                     # in the chart horizontally.
                   "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
@@ -40395,7 +84994,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -40520,14 +85119,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -40557,11 +85156,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -40585,6 +85184,144 @@
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
                   "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "strikethrough": True or False, # True if the text has a strikethrough.
                   "fontFamily": "A String", # The font family.
                   "fontSize": 42, # The size of the font.
@@ -40598,7 +85335,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -40650,11 +85387,281 @@
                     ],
                   },
                 },
+                "bubbleBorderColorStyle": { # A color value. # The bubble border color.
+                    # If bubble_border_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "legendPosition": "A String", # Where the legend of the chart should be drawn.
                 "bubbleMaxRadiusSize": 42, # The max radius size of the bubbles, in pixels.
                     # If specified, the field must be a positive value.
-                "bubbleOpacity": 3.14, # The opacity of the bubbles between 0 and 1.0.
-                    # 0 is fully transparent and 1 is fully opaque.
+                "bubbleBorderColor": { # Represents a color in the RGBA color space. This representation is designed # The bubble border color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
                 "groupIds": { # The data included in a domain or series. # The data containing the bubble group IDs. All bubbles with the same group
                     # ID are drawn in the same color. If bubble_sizes is specified then
                     # this field must also be specified but may contain blank values.
@@ -40664,7 +85671,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -40725,7 +85732,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -40783,7 +85790,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -40838,7 +85845,7 @@
                 "bubbleMinRadiusSize": 42, # The minimum radius size of the bubbles, in pixels.
                     # If specific, the field must be a positive value.
               },
-              "orgChart": { # An <a href="/chart/interactive/docs/gallery/orgchart">org chart</a>. # An org chart specification.
+              "orgChart": { # An &lt;a href="/chart/interactive/docs/gallery/orgchart"&gt;org chart&lt;/a&gt;. # An org chart specification.
                   # Org charts require a unique set of labels in labels and may
                   # optionally include parent_labels and tooltips.
                   # parent_labels contain, for each node, the label identifying the parent
@@ -40857,7 +85864,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -40918,7 +85925,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -41040,14 +86047,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -41077,11 +86084,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -41111,7 +86118,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -41233,14 +86240,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -41270,11 +86277,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -41297,42 +86304,313 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
+                "nodeColorStyle": { # A color value. # The color of the org chart nodes.
+                    # If node_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "selectedNodeColorStyle": { # A color value. # The color of the selected org chart nodes.
+                    # If selected_node_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "nodeSize": "A String", # The size of the org chart nodes.
               },
             },
           },
         },
-        "deleteDimensionGroup": { # The result of deleting a group. # A reply from deleting a dimension group.
-          "dimensionGroups": [ # All groups of a dimension after deleting a group from that dimension.
-            { # A group over an interval of rows or columns on a sheet, which can contain or
-                # be contained within other groups. A group can be collapsed or expanded as a
-                # unit on the sheet.
-              "range": { # A range along a single dimension on a sheet. # The range over which this group exists.
+        "updateEmbeddedObjectPosition": { # The result of updating an embedded object's position. # A reply from updating an embedded object's position.
+          "position": { # The position of an embedded object such as a chart. # The new position of the embedded object.
+            "newSheet": True or False, # If true, the embedded object is put on a new sheet whose ID
+                # is chosen for you. Used only when writing.
+            "sheetId": 42, # The sheet this is on. Set only if the embedded object
+                # is on its own sheet. Must be non-negative.
+            "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid.
+              "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to.
                   # All indexes are zero-based.
-                  # Indexes are half open: the start index is inclusive
-                  # and the end index is exclusive.
-                  # Missing indexes indicate the range is unbounded on that side.
-                "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
-                "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
-                "sheetId": 42, # The sheet this span is on.
-                "dimension": "A String", # The dimension of the span.
+                "rowIndex": 42, # The row index of the coordinate.
+                "columnIndex": 42, # The column index of the coordinate.
+                "sheetId": 42, # The sheet this coordinate is on.
               },
-              "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
-                  # collapsed if an overlapping group at a shallower depth is expanded.
-                  #
-                  # A true value does not imply that all dimensions within the group are
-                  # hidden, since a dimension's visibility can change independently from this
-                  # group property. However, when this property is updated, all dimensions
-                  # within it are set to hidden if this field is true, or set to visible if
-                  # this field is false.
-              "depth": 42, # The depth of the group, representing how many groups have a range that
-                  # wholly contains the range of this group.
+              "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
+                  # from the anchor cell.
+              "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
+              "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
+                  # from the anchor cell.
+              "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
             },
-          ],
+          },
         },
         "updateConditionalFormatRule": { # The result of updating a conditional format rule. # A reply from updating a conditional format rule.
           "oldIndex": 42, # The old index of the rule. Not set if a rule was replaced
               # (because it is the same as new_index).
+          "newIndex": 42, # The index of the new rule.
           "oldRule": { # A rule describing a conditional format. # The old (deleted) rule. Not set if a rule was moved
               # (because it is the same as new_rule).
             "ranges": [ # The ranges that are formatted if the condition is true.
@@ -41404,8 +86682,15 @@
                   # Conditional formatting can only apply a subset of formatting:
                   # bold, italic,
                   # strikethrough,
-                  # foreground color &
+                  # foreground color &amp;
                   # background color.
+                "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                    # When updating padding, every field must be specified.
+                  "top": 42, # The top padding of the cell.
+                  "left": 42, # The left padding of the cell.
+                  "right": 42, # The right padding of the cell.
+                  "bottom": 42, # The bottom padding of the cell.
+                },
                 "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                   "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                       # the user's locale will be used if necessary for the given type.
@@ -41415,12 +86700,143 @@
                       # When writing, this field must be set.
                 },
                 "textDirection": "A String", # The direction of the text in the cell.
-                "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                    # When updating padding, every field must be specified.
-                  "top": 42, # The top padding of the cell.
-                  "left": 42, # The left padding of the cell.
-                  "right": 42, # The right padding of the cell.
-                  "bottom": 42, # The bottom padding of the cell.
+                "backgroundColorStyle": { # A color value. # The background color of the cell.
+                    # If background_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
                 },
                 "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                 "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -41493,14 +86909,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -41530,11 +86946,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -41630,14 +87046,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -41667,11 +87083,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -41696,284 +87112,144 @@
                     },
                     "width": 42, # The width of the border, in pixels.
                         # Deprecated; the width is determined by the "style" field.
-                    "style": "A String", # The style of the border.
-                  },
-                  "right": { # A border along a cell. # The right border of the cell.
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
                           #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
                           #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
                     },
-                    "width": 42, # The width of the border, in pixels.
-                        # Deprecated; the width is determined by the "style" field.
-                    "style": "A String", # The style of the border.
-                  },
-                  "bottom": { # A border along a cell. # The bottom border of the cell.
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                    },
-                    "width": 42, # The width of the border, in pixels.
-                        # Deprecated; the width is determined by the "style" field.
                     "style": "A String", # The style of the border.
                   },
                   "left": { # A border along a cell. # The left border of the cell.
@@ -42047,14 +87323,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -42084,11 +87360,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -42113,6 +87389,698 @@
                     },
                     "width": 42, # The width of the border, in pixels.
                         # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "style": "A String", # The style of the border.
+                  },
+                  "right": { # A border along a cell. # The right border of the cell.
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "width": 42, # The width of the border, in pixels.
+                        # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "style": "A String", # The style of the border.
+                  },
+                  "bottom": { # A border along a cell. # The bottom border of the cell.
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "width": 42, # The width of the border, in pixels.
+                        # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
                     "style": "A String", # The style of the border.
                   },
                 },
@@ -42210,14 +88178,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -42247,11 +88215,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -42275,6 +88243,144 @@
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
                   "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "strikethrough": True or False, # True if the text has a strikethrough.
                   "fontFamily": "A String", # The font family.
                   "fontSize": 42, # The size of the font.
@@ -42361,14 +88467,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -42398,11 +88504,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -42425,6 +88531,144 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "type": "A String", # How the value should be interpreted.
                 "value": "A String", # The value this interpolation point uses.  May be a formula.
                     # Unused if type is MIN or
@@ -42503,14 +88747,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -42540,11 +88784,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -42567,6 +88811,144 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "type": "A String", # How the value should be interpreted.
                 "value": "A String", # The value this interpolation point uses.  May be a formula.
                     # Unused if type is MIN or
@@ -42645,14 +89027,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -42682,11 +89064,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -42709,6 +89091,144 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "type": "A String", # How the value should be interpreted.
                 "value": "A String", # The value this interpolation point uses.  May be a formula.
                     # Unused if type is MIN or
@@ -42716,7 +89236,6 @@
               },
             },
           },
-          "newIndex": 42, # The index of the new rule.
           "newRule": { # A rule describing a conditional format. # The new rule that replaced the old rule (if replacing),
               # or the rule that was moved (if moved)
             "ranges": [ # The ranges that are formatted if the condition is true.
@@ -42788,8 +89307,15 @@
                   # Conditional formatting can only apply a subset of formatting:
                   # bold, italic,
                   # strikethrough,
-                  # foreground color &
+                  # foreground color &amp;
                   # background color.
+                "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                    # When updating padding, every field must be specified.
+                  "top": 42, # The top padding of the cell.
+                  "left": 42, # The left padding of the cell.
+                  "right": 42, # The right padding of the cell.
+                  "bottom": 42, # The bottom padding of the cell.
+                },
                 "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                   "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                       # the user's locale will be used if necessary for the given type.
@@ -42799,12 +89325,143 @@
                       # When writing, this field must be set.
                 },
                 "textDirection": "A String", # The direction of the text in the cell.
-                "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                    # When updating padding, every field must be specified.
-                  "top": 42, # The top padding of the cell.
-                  "left": 42, # The left padding of the cell.
-                  "right": 42, # The right padding of the cell.
-                  "bottom": 42, # The bottom padding of the cell.
+                "backgroundColorStyle": { # A color value. # The background color of the cell.
+                    # If background_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
                 },
                 "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                 "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -42877,14 +89534,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -42914,11 +89571,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -43014,14 +89671,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -43051,11 +89708,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -43080,284 +89737,144 @@
                     },
                     "width": 42, # The width of the border, in pixels.
                         # Deprecated; the width is determined by the "style" field.
-                    "style": "A String", # The style of the border.
-                  },
-                  "right": { # A border along a cell. # The right border of the cell.
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
                           #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
                           #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
                     },
-                    "width": 42, # The width of the border, in pixels.
-                        # Deprecated; the width is determined by the "style" field.
-                    "style": "A String", # The style of the border.
-                  },
-                  "bottom": { # A border along a cell. # The bottom border of the cell.
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                    },
-                    "width": 42, # The width of the border, in pixels.
-                        # Deprecated; the width is determined by the "style" field.
                     "style": "A String", # The style of the border.
                   },
                   "left": { # A border along a cell. # The left border of the cell.
@@ -43431,14 +89948,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -43468,11 +89985,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -43497,6 +90014,698 @@
                     },
                     "width": 42, # The width of the border, in pixels.
                         # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "style": "A String", # The style of the border.
+                  },
+                  "right": { # A border along a cell. # The right border of the cell.
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "width": 42, # The width of the border, in pixels.
+                        # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "style": "A String", # The style of the border.
+                  },
+                  "bottom": { # A border along a cell. # The bottom border of the cell.
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "width": 42, # The width of the border, in pixels.
+                        # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
                     "style": "A String", # The style of the border.
                   },
                 },
@@ -43594,14 +90803,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -43631,11 +90840,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -43659,6 +90868,144 @@
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
                   "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "strikethrough": True or False, # True if the text has a strikethrough.
                   "fontFamily": "A String", # The font family.
                   "fontSize": 42, # The size of the font.
@@ -43745,14 +91092,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -43782,11 +91129,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -43809,6 +91156,144 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "type": "A String", # How the value should be interpreted.
                 "value": "A String", # The value this interpolation point uses.  May be a formula.
                     # Unused if type is MIN or
@@ -43887,14 +91372,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -43924,11 +91409,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -43951,6 +91436,144 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "type": "A String", # How the value should be interpreted.
                 "value": "A String", # The value this interpolation point uses.  May be a formula.
                     # Unused if type is MIN or
@@ -44029,14 +91652,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -44066,11 +91689,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -44093,6 +91716,144 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "type": "A String", # How the value should be interpreted.
                 "value": "A String", # The value this interpolation point uses.  May be a formula.
                     # Unused if type is MIN or
@@ -44199,14 +91960,14 @@
                 #
                 #      static Color* toProto(UIColor* color) {
                 #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                 #            return nil;
                 #          }
                 #          Color* result = [[Color alloc] init];
                 #          [result setRed:red];
                 #          [result setGreen:green];
                 #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
+                #          if (alpha &lt;= 0.9999) {
                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                 #          }
                 #          [result autorelease];
@@ -44236,11 +91997,11 @@
                 #     };
                 #
                 #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                 #       var hexString = rgbNumber.toString(16);
                 #       var missingZeros = 6 - hexString.length;
                 #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
+                #       for (var i = 0; i &lt; missingZeros; i++) {
                 #          resultBuilder.push('0');
                 #       }
                 #       resultBuilder.push(hexString);
@@ -44264,6 +92025,144 @@
               "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
             },
             "hidden": True or False, # True if the sheet is hidden in the UI, false if it's visible.
+            "tabColorStyle": { # A color value. # The color of the tab in the UI.
+                # If tab_color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
             "sheetId": 42, # The ID of the sheet. Must be non-negative.
                 # This field cannot be changed once set.
           },
@@ -44271,12 +92170,15 @@
         "findReplace": { # The result of the find/replace. # A reply from doing a find/replace.
           "occurrencesChanged": 42, # The number of occurrences (possibly multiple within a cell) changed.
               # For example, if replacing `"e"` with `"o"` in `"Google Sheets"`, this would
-              # be `"3"` because `"Google Sheets"` -> `"Googlo Shoots"`.
+              # be `"3"` because `"Google Sheets"` -&gt; `"Googlo Shoots"`.
           "sheetsChanged": 42, # The number of sheets changed.
           "rowsChanged": 42, # The number of rows changed.
           "valuesChanged": 42, # The number of non-formula cells changed.
           "formulasChanged": 42, # The number of formula cells changed.
         },
+        "trimWhitespace": { # The result of trimming whitespace in cells. # A reply from trimming whitespace.
+          "cellsChangedCount": 42, # The number of cells that were trimmed of whitespace.
+        },
         "addNamedRange": { # The result of adding a named range. # A reply from adding a named range.
           "namedRange": { # A named range. # The named range to add.
             "namedRangeId": "A String", # The ID of the named range.
@@ -44366,6 +92268,21 @@
                 #
                 # When writing, only one of range or named_range_id
                 # may be set.
+            "protectedRangeId": 42, # The ID of the protected range.
+                # This field is read-only.
+            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
+                # This field is only visible to users with edit access to the protected
+                # range and the document.
+                # Editors are not supported with warning_only protection.
+              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
+                  # range.  Domain protection is only supported on documents within a domain.
+              "users": [ # The email addresses of users with edit access to the protected range.
+                "A String",
+              ],
+              "groups": [ # The email addresses of groups with edit access to the protected range.
+                "A String",
+              ],
+            },
             "range": { # A range on a sheet. # The range that is being protected.
                 # The range may be fully unbounded, in which case this is considered
                 # a protected sheet.
@@ -44406,21 +92323,6 @@
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
               "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
-            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
-                # This field is only visible to users with edit access to the protected
-                # range and the document.
-                # Editors are not supported with warning_only protection.
-              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
-                  # range.  Domain protection is only supported on documents within a domain.
-              "users": [ # The email addresses of users with edit access to the protected range.
-                "A String",
-              ],
-              "groups": [ # The email addresses of groups with edit access to the protected range.
-                "A String",
-              ],
-            },
-            "protectedRangeId": 42, # The ID of the protected range.
-                # This field is read-only.
             "warningOnly": True or False, # True if this protected range will show a warning when editing.
                 # Warning-based protection means that every user can edit data in the
                 # protected range, except editing will prompt a warning asking the user
@@ -44503,8 +92405,15 @@
                   # Conditional formatting can only apply a subset of formatting:
                   # bold, italic,
                   # strikethrough,
-                  # foreground color &
+                  # foreground color &amp;
                   # background color.
+                "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                    # When updating padding, every field must be specified.
+                  "top": 42, # The top padding of the cell.
+                  "left": 42, # The left padding of the cell.
+                  "right": 42, # The right padding of the cell.
+                  "bottom": 42, # The bottom padding of the cell.
+                },
                 "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                   "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                       # the user's locale will be used if necessary for the given type.
@@ -44514,12 +92423,143 @@
                       # When writing, this field must be set.
                 },
                 "textDirection": "A String", # The direction of the text in the cell.
-                "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                    # When updating padding, every field must be specified.
-                  "top": 42, # The top padding of the cell.
-                  "left": 42, # The left padding of the cell.
-                  "right": 42, # The right padding of the cell.
-                  "bottom": 42, # The bottom padding of the cell.
+                "backgroundColorStyle": { # A color value. # The background color of the cell.
+                    # If background_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
                 },
                 "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                 "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -44592,14 +92632,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -44629,11 +92669,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -44729,14 +92769,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -44766,11 +92806,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -44795,284 +92835,144 @@
                     },
                     "width": 42, # The width of the border, in pixels.
                         # Deprecated; the width is determined by the "style" field.
-                    "style": "A String", # The style of the border.
-                  },
-                  "right": { # A border along a cell. # The right border of the cell.
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
                           #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
                           #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
                     },
-                    "width": 42, # The width of the border, in pixels.
-                        # Deprecated; the width is determined by the "style" field.
-                    "style": "A String", # The style of the border.
-                  },
-                  "bottom": { # A border along a cell. # The bottom border of the cell.
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                    },
-                    "width": 42, # The width of the border, in pixels.
-                        # Deprecated; the width is determined by the "style" field.
                     "style": "A String", # The style of the border.
                   },
                   "left": { # A border along a cell. # The left border of the cell.
@@ -45146,14 +93046,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -45183,11 +93083,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -45212,6 +93112,698 @@
                     },
                     "width": 42, # The width of the border, in pixels.
                         # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "style": "A String", # The style of the border.
+                  },
+                  "right": { # A border along a cell. # The right border of the cell.
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "width": 42, # The width of the border, in pixels.
+                        # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "style": "A String", # The style of the border.
+                  },
+                  "bottom": { # A border along a cell. # The bottom border of the cell.
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "width": 42, # The width of the border, in pixels.
+                        # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
                     "style": "A String", # The style of the border.
                   },
                 },
@@ -45309,14 +93901,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -45346,11 +93938,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -45374,6 +93966,144 @@
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
                   "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "strikethrough": True or False, # True if the text has a strikethrough.
                   "fontFamily": "A String", # The font family.
                   "fontSize": 42, # The size of the font.
@@ -45460,14 +94190,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -45497,11 +94227,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -45524,6 +94254,144 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "type": "A String", # How the value should be interpreted.
                 "value": "A String", # The value this interpolation point uses.  May be a formula.
                     # Unused if type is MIN or
@@ -45602,14 +94470,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -45639,11 +94507,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -45666,6 +94534,144 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "type": "A String", # How the value should be interpreted.
                 "value": "A String", # The value this interpolation point uses.  May be a formula.
                     # Unused if type is MIN or
@@ -45744,14 +94750,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -45781,11 +94787,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -45808,6 +94814,144 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "type": "A String", # How the value should be interpreted.
                 "value": "A String", # The value this interpolation point uses.  May be a formula.
                     # Unused if type is MIN or
@@ -45821,6 +94965,16 @@
             { # A group over an interval of rows or columns on a sheet, which can contain or
                 # be contained within other groups. A group can be collapsed or expanded as a
                 # unit on the sheet.
+              "depth": 42, # The depth of the group, representing how many groups have a range that
+                  # wholly contains the range of this group.
+              "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
+                  # collapsed if an overlapping group at a shallower depth is expanded.
+                  #
+                  # A true value does not imply that all dimensions within the group are
+                  # hidden, since a dimension's visibility can change independently from this
+                  # group property. However, when this property is updated, all dimensions
+                  # within it are set to hidden if this field is true, or set to visible if
+                  # this field is false.
               "range": { # A range along a single dimension on a sheet. # The range over which this group exists.
                   # All indexes are zero-based.
                   # Indexes are half open: the start index is inclusive
@@ -45831,16 +94985,6 @@
                 "sheetId": 42, # The sheet this span is on.
                 "dimension": "A String", # The dimension of the span.
               },
-              "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
-                  # collapsed if an overlapping group at a shallower depth is expanded.
-                  #
-                  # A true value does not imply that all dimensions within the group are
-                  # hidden, since a dimension's visibility can change independently from this
-                  # group property. However, when this property is updated, all dimensions
-                  # within it are set to hidden if this field is true, or set to visible if
-                  # this field is false.
-              "depth": 42, # The depth of the group, representing how many groups have a range that
-                  # wholly contains the range of this group.
             },
           ],
         },
@@ -45966,14 +95110,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -46003,11 +95147,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -46030,12 +95174,12 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first
-                  # row or column will be filled with this color and the colors will
-                  # alternate between first_band_color and second_band_color starting
-                  # from the second row or column. Otherwise, the first row or column will be
-                  # filled with first_band_color and the colors will proceed to alternate
-                  # as they normally would.
+              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would.
                   # for simplicity of conversion to/from color representations in various
                   # languages over compactness; for example, the fields of this representation
                   # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -46105,14 +95249,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -46142,11 +95286,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -46169,142 +95313,426 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
-                  # row or column will be filled with either first_band_color or
+              "footerColorStyle": { # A color value. # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
                   # second_band_color, depending on the color of the previous row or
                   # column.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
+                  # If footer_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
                     #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
                     #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "headerColorStyle": { # A color value. # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would. If header_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "secondBandColorStyle": { # A color value. # The second color that is alternating. (Required)
+                  # If second_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
               },
               "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required)
                   # for simplicity of conversion to/from color representations in various
@@ -46376,14 +95804,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -46413,11 +95841,286 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "firstBandColorStyle": { # A color value. # The first color that is alternating. (Required)
+                  # If first_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
+                  # second_band_color, depending on the color of the previous row or
+                  # column.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -46526,14 +96229,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -46563,11 +96266,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -46590,12 +96293,12 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first
-                  # row or column will be filled with this color and the colors will
-                  # alternate between first_band_color and second_band_color starting
-                  # from the second row or column. Otherwise, the first row or column will be
-                  # filled with first_band_color and the colors will proceed to alternate
-                  # as they normally would.
+              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would.
                   # for simplicity of conversion to/from color representations in various
                   # languages over compactness; for example, the fields of this representation
                   # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -46665,14 +96368,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -46702,11 +96405,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -46729,142 +96432,426 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
-                  # row or column will be filled with either first_band_color or
+              "footerColorStyle": { # A color value. # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
                   # second_band_color, depending on the color of the previous row or
                   # column.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
+                  # If footer_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
                     #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
                     #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "headerColorStyle": { # A color value. # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would. If header_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "secondBandColorStyle": { # A color value. # The second color that is alternating. (Required)
+                  # If second_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
               },
               "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required)
                   # for simplicity of conversion to/from color representations in various
@@ -46936,14 +96923,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -46973,11 +96960,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -47000,1073 +96987,10 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-            },
-            "bandedRangeId": 42, # The id of the banded range.
-          },
-        },
-        "createDeveloperMetadata": { # The response from creating developer metadata. # A reply from creating a developer metadata entry.
-          "developerMetadata": { # Developer metadata associated with a location or object in a spreadsheet. # The developer metadata that was created.
-              # Developer metadata may be used to associate arbitrary data with various
-              # parts of a spreadsheet and will remain associated at those locations as they
-              # move around and the spreadsheet is edited.  For example, if developer
-              # metadata is associated with row 5 and another row is then subsequently
-              # inserted above row 5, that original metadata will still be associated with
-              # the row it was first associated with (what is now row 6). If the associated
-              # object is deleted its metadata is deleted too.
-            "metadataId": 42, # The spreadsheet-scoped unique ID that identifies the metadata. IDs may be
-                # specified when metadata is created, otherwise one will be randomly
-                # generated and assigned. Must be positive.
-            "metadataValue": "A String", # Data associated with the metadata's key.
-            "location": { # A location where metadata may be associated in a spreadsheet. # The location where the metadata is associated.
-              "locationType": "A String", # The type of location this object represents.  This field is read-only.
-              "dimensionRange": { # A range along a single dimension on a sheet. # Represents the row or column when metadata is associated with
-                  # a dimension. The specified DimensionRange must represent a single row
-                  # or column; it cannot be unbounded or span multiple rows or columns.
-                  # All indexes are zero-based.
-                  # Indexes are half open: the start index is inclusive
-                  # and the end index is exclusive.
-                  # Missing indexes indicate the range is unbounded on that side.
-                "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
-                "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
-                "sheetId": 42, # The sheet this span is on.
-                "dimension": "A String", # The dimension of the span.
-              },
-              "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
-              "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
-            },
-            "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
-                # specified.
-            "metadataKey": "A String", # The metadata key. There may be multiple metadata in a spreadsheet with the
-                # same key.  Developer metadata must always have a key specified.
-          },
-        },
-        "addFilterView": { # The result of adding a filter view. # A reply from adding a filter view.
-          "filter": { # A filter view. # The newly added filter view.
-            "title": "A String", # The name of the filter view.
-            "namedRangeId": "A String", # The named range this filter view is backed by, if any.
-                #
-                # When writing, only one of range or named_range_id
-                # may be set.
-            "filterViewId": 42, # The ID of the filter view.
-            "range": { # A range on a sheet. # The range this filter view covers.
-                #
-                # When writing, only one of range or named_range_id
-                # may be set.
-                # All indexes are zero-based.
-                # Indexes are half open, e.g the start index is inclusive
-                # and the end index is exclusive -- [start_index, end_index).
-                # Missing indexes indicate the range is unbounded on that side.
-                #
-                # For example, if `"Sheet1"` is sheet ID 0, then:
-                #
-                #   `Sheet1!A1:A1 == sheet_id: 0,
-                #                   start_row_index: 0, end_row_index: 1,
-                #                   start_column_index: 0, end_column_index: 1`
-                #
-                #   `Sheet1!A3:B4 == sheet_id: 0,
-                #                   start_row_index: 2, end_row_index: 4,
-                #                   start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A:B == sheet_id: 0,
-                #                 start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A5:B == sheet_id: 0,
-                #                  start_row_index: 4,
-                #                  start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1 == sheet_id:0`
-                #
-                # The start index must always be less than or equal to the end index.
-                # If the start index equals the end index, then the range is empty.
-                # Empty ranges are typically not meaningful and are usually rendered in the
-                # UI as `#REF!`.
-              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-              "sheetId": 42, # The sheet this range is on.
-              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-            },
-            "sortSpecs": [ # The sort order per column. Later specifications are used when values
-                # are equal in the earlier specifications.
-              { # A sort order associated with a specific column or row.
-                "sortOrder": "A String", # The order data should be sorted.
-                "dimensionIndex": 42, # The dimension the sort should be applied to.
-              },
-            ],
-            "criteria": { # The criteria for showing/hiding values per column.
-                # The map's key is the column index, and the value is the criteria for
-                # that column.
-              "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
-                "hiddenValues": [ # Values that should be hidden.
-                  "A String",
-                ],
-                "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
-                    # (This does not override hiddenValues -- if a value is listed there,
-                    #  it will still be hidden.)
-                    # BooleanConditions are used by conditional formatting,
-                    # data validation, and the criteria in filters.
-                  "values": [ # The values of the condition. The number of supported values depends
-                      # on the condition type.  Some support zero values,
-                      # others one or two values,
-                      # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
-                    { # The value of the condition.
-                      "relativeDate": "A String", # A relative date (based on the current date).
-                          # Valid only if the type is
-                          # DATE_BEFORE,
-                          # DATE_AFTER,
-                          # DATE_ON_OR_BEFORE or
-                          # DATE_ON_OR_AFTER.
-                          #
-                          # Relative dates are not supported in data validation.
-                          # They are supported only in conditional formatting and
-                          # conditional filters.
-                      "userEnteredValue": "A String", # A value the condition is based on.
-                          # The value is parsed as if the user typed into a cell.
-                          # Formulas are supported (and must begin with an `=` or a '+').
-                    },
-                  ],
-                  "type": "A String", # The type of condition.
-                },
-              },
-            },
-          },
-        },
-        "updateDeveloperMetadata": { # The response from updating developer metadata. # A reply from updating a developer metadata entry.
-          "developerMetadata": [ # The updated developer metadata.
-            { # Developer metadata associated with a location or object in a spreadsheet.
-                # Developer metadata may be used to associate arbitrary data with various
-                # parts of a spreadsheet and will remain associated at those locations as they
-                # move around and the spreadsheet is edited.  For example, if developer
-                # metadata is associated with row 5 and another row is then subsequently
-                # inserted above row 5, that original metadata will still be associated with
-                # the row it was first associated with (what is now row 6). If the associated
-                # object is deleted its metadata is deleted too.
-              "metadataId": 42, # The spreadsheet-scoped unique ID that identifies the metadata. IDs may be
-                  # specified when metadata is created, otherwise one will be randomly
-                  # generated and assigned. Must be positive.
-              "metadataValue": "A String", # Data associated with the metadata's key.
-              "location": { # A location where metadata may be associated in a spreadsheet. # The location where the metadata is associated.
-                "locationType": "A String", # The type of location this object represents.  This field is read-only.
-                "dimensionRange": { # A range along a single dimension on a sheet. # Represents the row or column when metadata is associated with
-                    # a dimension. The specified DimensionRange must represent a single row
-                    # or column; it cannot be unbounded or span multiple rows or columns.
-                    # All indexes are zero-based.
-                    # Indexes are half open: the start index is inclusive
-                    # and the end index is exclusive.
-                    # Missing indexes indicate the range is unbounded on that side.
-                  "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
-                  "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
-                  "sheetId": 42, # The sheet this span is on.
-                  "dimension": "A String", # The dimension of the span.
-                },
-                "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
-                "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
-              },
-              "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
-                  # specified.
-              "metadataKey": "A String", # The metadata key. There may be multiple metadata in a spreadsheet with the
-                  # same key.  Developer metadata must always have a key specified.
-            },
-          ],
-        },
-        "deleteDeveloperMetadata": { # The response from deleting developer metadata. # A reply from deleting a developer metadata entry.
-          "deletedDeveloperMetadata": [ # The metadata that was deleted.
-            { # Developer metadata associated with a location or object in a spreadsheet.
-                # Developer metadata may be used to associate arbitrary data with various
-                # parts of a spreadsheet and will remain associated at those locations as they
-                # move around and the spreadsheet is edited.  For example, if developer
-                # metadata is associated with row 5 and another row is then subsequently
-                # inserted above row 5, that original metadata will still be associated with
-                # the row it was first associated with (what is now row 6). If the associated
-                # object is deleted its metadata is deleted too.
-              "metadataId": 42, # The spreadsheet-scoped unique ID that identifies the metadata. IDs may be
-                  # specified when metadata is created, otherwise one will be randomly
-                  # generated and assigned. Must be positive.
-              "metadataValue": "A String", # Data associated with the metadata's key.
-              "location": { # A location where metadata may be associated in a spreadsheet. # The location where the metadata is associated.
-                "locationType": "A String", # The type of location this object represents.  This field is read-only.
-                "dimensionRange": { # A range along a single dimension on a sheet. # Represents the row or column when metadata is associated with
-                    # a dimension. The specified DimensionRange must represent a single row
-                    # or column; it cannot be unbounded or span multiple rows or columns.
-                    # All indexes are zero-based.
-                    # Indexes are half open: the start index is inclusive
-                    # and the end index is exclusive.
-                    # Missing indexes indicate the range is unbounded on that side.
-                  "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
-                  "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
-                  "sheetId": 42, # The sheet this span is on.
-                  "dimension": "A String", # The dimension of the span.
-                },
-                "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
-                "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
-              },
-              "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
-                  # specified.
-              "metadataKey": "A String", # The metadata key. There may be multiple metadata in a spreadsheet with the
-                  # same key.  Developer metadata must always have a key specified.
-            },
-          ],
-        },
-      },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="create">create(body, x__xgafv=None)</code>
-  <pre>Creates a spreadsheet, returning the newly created spreadsheet.
-
-Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Resource that represents a spreadsheet.
-  "developerMetadata": [ # The developer metadata associated with a spreadsheet.
-    { # Developer metadata associated with a location or object in a spreadsheet.
-        # Developer metadata may be used to associate arbitrary data with various
-        # parts of a spreadsheet and will remain associated at those locations as they
-        # move around and the spreadsheet is edited.  For example, if developer
-        # metadata is associated with row 5 and another row is then subsequently
-        # inserted above row 5, that original metadata will still be associated with
-        # the row it was first associated with (what is now row 6). If the associated
-        # object is deleted its metadata is deleted too.
-      "metadataId": 42, # The spreadsheet-scoped unique ID that identifies the metadata. IDs may be
-          # specified when metadata is created, otherwise one will be randomly
-          # generated and assigned. Must be positive.
-      "metadataValue": "A String", # Data associated with the metadata's key.
-      "location": { # A location where metadata may be associated in a spreadsheet. # The location where the metadata is associated.
-        "locationType": "A String", # The type of location this object represents.  This field is read-only.
-        "dimensionRange": { # A range along a single dimension on a sheet. # Represents the row or column when metadata is associated with
-            # a dimension. The specified DimensionRange must represent a single row
-            # or column; it cannot be unbounded or span multiple rows or columns.
-            # All indexes are zero-based.
-            # Indexes are half open: the start index is inclusive
-            # and the end index is exclusive.
-            # Missing indexes indicate the range is unbounded on that side.
-          "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
-          "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
-          "sheetId": 42, # The sheet this span is on.
-          "dimension": "A String", # The dimension of the span.
-        },
-        "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
-        "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
-      },
-      "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
-          # specified.
-      "metadataKey": "A String", # The metadata key. There may be multiple metadata in a spreadsheet with the
-          # same key.  Developer metadata must always have a key specified.
-    },
-  ],
-  "sheets": [ # The sheets that are part of a spreadsheet.
-    { # A sheet in a spreadsheet.
-      "conditionalFormats": [ # The conditional format rules in this sheet.
-        { # A rule describing a conditional format.
-          "ranges": [ # The ranges that are formatted if the condition is true.
-              # All the ranges must be on the same grid.
-            { # A range on a sheet.
-                # All indexes are zero-based.
-                # Indexes are half open, e.g the start index is inclusive
-                # and the end index is exclusive -- [start_index, end_index).
-                # Missing indexes indicate the range is unbounded on that side.
-                #
-                # For example, if `"Sheet1"` is sheet ID 0, then:
-                #
-                #   `Sheet1!A1:A1 == sheet_id: 0,
-                #                   start_row_index: 0, end_row_index: 1,
-                #                   start_column_index: 0, end_column_index: 1`
-                #
-                #   `Sheet1!A3:B4 == sheet_id: 0,
-                #                   start_row_index: 2, end_row_index: 4,
-                #                   start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A:B == sheet_id: 0,
-                #                 start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A5:B == sheet_id: 0,
-                #                  start_row_index: 4,
-                #                  start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1 == sheet_id:0`
-                #
-                # The start index must always be less than or equal to the end index.
-                # If the start index equals the end index, then the range is empty.
-                # Empty ranges are typically not meaningful and are usually rendered in the
-                # UI as `#REF!`.
-              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-              "sheetId": 42, # The sheet this range is on.
-              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-            },
-          ],
-          "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
-            "condition": { # A condition that can evaluate to true or false. # The condition of the rule. If the condition evaluates to true,
-                # the format is applied.
-                # BooleanConditions are used by conditional formatting,
-                # data validation, and the criteria in filters.
-              "values": [ # The values of the condition. The number of supported values depends
-                  # on the condition type.  Some support zero values,
-                  # others one or two values,
-                  # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
-                { # The value of the condition.
-                  "relativeDate": "A String", # A relative date (based on the current date).
-                      # Valid only if the type is
-                      # DATE_BEFORE,
-                      # DATE_AFTER,
-                      # DATE_ON_OR_BEFORE or
-                      # DATE_ON_OR_AFTER.
-                      #
-                      # Relative dates are not supported in data validation.
-                      # They are supported only in conditional formatting and
-                      # conditional filters.
-                  "userEnteredValue": "A String", # A value the condition is based on.
-                      # The value is parsed as if the user typed into a cell.
-                      # Formulas are supported (and must begin with an `=` or a '+').
-                },
-              ],
-              "type": "A String", # The type of condition.
-            },
-            "format": { # The format of a cell. # The format to apply.
-                # Conditional formatting can only apply a subset of formatting:
-                # bold, italic,
-                # strikethrough,
-                # foreground color &
-                # background color.
-              "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
-                "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
-                    # the user's locale will be used if necessary for the given type.
-                    # See the [Date and Number Formats guide](/sheets/api/guides/formats) for
-                    # more information about the supported patterns.
-                "type": "A String", # The type of the number format.
-                    # When writing, this field must be set.
-              },
-              "textDirection": "A String", # The direction of the text in the cell.
-              "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                  # When updating padding, every field must be specified.
-                "top": 42, # The top padding of the cell.
-                "left": 42, # The left padding of the cell.
-                "right": 42, # The right padding of the cell.
-                "bottom": 42, # The bottom padding of the cell.
-              },
-              "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
-              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
-                    #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                    #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-              },
-              "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
-              "borders": { # The borders of the cell. # The borders of the cell.
-                "top": { # A border along a cell. # The top border of the cell.
-                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
-                        #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                        #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                  },
-                  "width": 42, # The width of the border, in pixels.
-                      # Deprecated; the width is determined by the "style" field.
-                  "style": "A String", # The style of the border.
-                },
-                "right": { # A border along a cell. # The right border of the cell.
-                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
-                        #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                        #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                  },
-                  "width": 42, # The width of the border, in pixels.
-                      # Deprecated; the width is determined by the "style" field.
-                  "style": "A String", # The style of the border.
-                },
-                "bottom": { # A border along a cell. # The bottom border of the cell.
-                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
-                        #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                        #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                  },
-                  "width": 42, # The width of the border, in pixels.
-                      # Deprecated; the width is determined by the "style" field.
-                  "style": "A String", # The style of the border.
-                },
-                "left": { # A border along a cell. # The left border of the cell.
-                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
-                        #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                        #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                  },
-                  "width": 42, # The width of the border, in pixels.
-                      # Deprecated; the width is determined by the "style" field.
-                  "style": "A String", # The style of the border.
-                },
-              },
-              "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
-                "angle": 42, # The angle between the standard orientation and the desired orientation.
-                    # Measured in degrees. Valid values are between -90 and 90. Positive
-                    # angles are angled upwards, negative are angled downwards.
-                    #
-                    # Note: For LTR text direction positive angles are in the
-                    # counterclockwise direction, whereas for RTL they are in the clockwise
-                    # direction
-                "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
-                    # characters is unchanged.
-                    # For example:
-                    #
-                    #     | V |
-                    #     | e |
-                    #     | r |
-                    #     | t |
-                    #     | i |
-                    #     | c |
-                    #     | a |
-                    #     | l |
-              },
-              "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
-              "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
-                  # Absent values indicate that the field isn't specified.
-                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+              "firstBandColorStyle": { # A color value. # The first color that is alternating. (Required)
+                  # If first_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
                     # for simplicity of conversion to/from color representations in various
                     # languages over compactness; for example, the fields of this representation
                     # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -48136,14 +97060,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -48173,11 +97097,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -48200,446 +97124,1520 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
-                "bold": True or False, # True if the text is bold.
-                "strikethrough": True or False, # True if the text has a strikethrough.
-                "fontFamily": "A String", # The font family.
-                "fontSize": 42, # The size of the font.
-                "italic": True or False, # True if the text is italicized.
-                "underline": True or False, # True if the text is underlined.
               },
-              "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
+                  # second_band_color, depending on the color of the previous row or
+                  # column.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
+            "bandedRangeId": 42, # The id of the banded range.
+          },
+        },
+        "deleteDimensionGroup": { # The result of deleting a group. # A reply from deleting a dimension group.
+          "dimensionGroups": [ # All groups of a dimension after deleting a group from that dimension.
+            { # A group over an interval of rows or columns on a sheet, which can contain or
+                # be contained within other groups. A group can be collapsed or expanded as a
+                # unit on the sheet.
+              "depth": 42, # The depth of the group, representing how many groups have a range that
+                  # wholly contains the range of this group.
+              "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
+                  # collapsed if an overlapping group at a shallower depth is expanded.
+                  #
+                  # A true value does not imply that all dimensions within the group are
+                  # hidden, since a dimension's visibility can change independently from this
+                  # group property. However, when this property is updated, all dimensions
+                  # within it are set to hidden if this field is true, or set to visible if
+                  # this field is false.
+              "range": { # A range along a single dimension on a sheet. # The range over which this group exists.
+                  # All indexes are zero-based.
+                  # Indexes are half open: the start index is inclusive
+                  # and the end index is exclusive.
+                  # Missing indexes indicate the range is unbounded on that side.
+                "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
+                "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
+                "sheetId": 42, # The sheet this span is on.
+                "dimension": "A String", # The dimension of the span.
+              },
+            },
+          ],
+        },
+        "createDeveloperMetadata": { # The response from creating developer metadata. # A reply from creating a developer metadata entry.
+          "developerMetadata": { # Developer metadata associated with a location or object in a spreadsheet. # The developer metadata that was created.
+              # Developer metadata may be used to associate arbitrary data with various
+              # parts of a spreadsheet and will remain associated at those locations as they
+              # move around and the spreadsheet is edited.  For example, if developer
+              # metadata is associated with row 5 and another row is then subsequently
+              # inserted above row 5, that original metadata will still be associated with
+              # the row it was first associated with (what is now row 6). If the associated
+              # object is deleted its metadata is deleted too.
+            "metadataId": 42, # The spreadsheet-scoped unique ID that identifies the metadata. IDs may be
+                # specified when metadata is created, otherwise one will be randomly
+                # generated and assigned. Must be positive.
+            "metadataValue": "A String", # Data associated with the metadata's key.
+            "location": { # A location where metadata may be associated in a spreadsheet. # The location where the metadata is associated.
+              "locationType": "A String", # The type of location this object represents.  This field is read-only.
+              "dimensionRange": { # A range along a single dimension on a sheet. # Represents the row or column when metadata is associated with
+                  # a dimension. The specified DimensionRange must represent a single row
+                  # or column; it cannot be unbounded or span multiple rows or columns.
+                  # All indexes are zero-based.
+                  # Indexes are half open: the start index is inclusive
+                  # and the end index is exclusive.
+                  # Missing indexes indicate the range is unbounded on that side.
+                "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
+                "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
+                "sheetId": 42, # The sheet this span is on.
+                "dimension": "A String", # The dimension of the span.
+              },
+              "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+              "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
+            },
+            "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
+                # specified.
+            "metadataKey": "A String", # The metadata key. There may be multiple metadata in a spreadsheet with the
+                # same key.  Developer metadata must always have a key specified.
+          },
+        },
+        "addFilterView": { # The result of adding a filter view. # A reply from adding a filter view.
+          "filter": { # A filter view. # The newly added filter view.
+            "title": "A String", # The name of the filter view.
+            "namedRangeId": "A String", # The named range this filter view is backed by, if any.
+                #
+                # When writing, only one of range or named_range_id
+                # may be set.
+            "filterViewId": 42, # The ID of the filter view.
+            "range": { # A range on a sheet. # The range this filter view covers.
+                #
+                # When writing, only one of range or named_range_id
+                # may be set.
+                # All indexes are zero-based.
+                # Indexes are half open, e.g the start index is inclusive
+                # and the end index is exclusive -- [start_index, end_index).
+                # Missing indexes indicate the range is unbounded on that side.
+                #
+                # For example, if `"Sheet1"` is sheet ID 0, then:
+                #
+                #   `Sheet1!A1:A1 == sheet_id: 0,
+                #                   start_row_index: 0, end_row_index: 1,
+                #                   start_column_index: 0, end_column_index: 1`
+                #
+                #   `Sheet1!A3:B4 == sheet_id: 0,
+                #                   start_row_index: 2, end_row_index: 4,
+                #                   start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A:B == sheet_id: 0,
+                #                 start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A5:B == sheet_id: 0,
+                #                  start_row_index: 4,
+                #                  start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1 == sheet_id:0`
+                #
+                # The start index must always be less than or equal to the end index.
+                # If the start index equals the end index, then the range is empty.
+                # Empty ranges are typically not meaningful and are usually rendered in the
+                # UI as `#REF!`.
+              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "sheetId": 42, # The sheet this range is on.
+              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            },
+            "sortSpecs": [ # The sort order per column. Later specifications are used when values
+                # are equal in the earlier specifications.
+              { # A sort order associated with a specific column or row.
+                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to sort by; cells with this foreground color are
+                    # sorted to the top. Mutually exclusive with background_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to sort by; cells with this fill color are sorted
+                    # to the top. Mutually exclusive with foreground_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "foregroundColorStyle": { # A color value. # The foreground color to sort by; cells with this foreground color are
+                    # sorted to the top. Mutually exclusive with background_color, and must
+                    # be an RGB-type color. If foreground_color is also set, this field takes
+                    # precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "backgroundColorStyle": { # A color value. # The background fill color to sort by; cells with this fill color are sorted
+                    # to the top. Mutually exclusive with foreground_color, and must be an
+                    # RGB-type color. If background_color is also set, this field takes
+                    # precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "sortOrder": "A String", # The order data should be sorted.
+                "dimensionIndex": 42, # The dimension the sort should be applied to.
+              },
+            ],
+            "criteria": { # The criteria for showing/hiding values per column.
+                # The map's key is the column index, and the value is the criteria for
+                # that column.
+              "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
+                "visibleBackgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to filter by; only cells with this fill color are
+                    # shown. Mutually exclusive with visible_foreground_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "hiddenValues": [ # Values that should be hidden.
+                  "A String",
+                ],
+                "visibleBackgroundColorStyle": { # A color value. # The background fill color to filter by; only cells with this fill color are
+                    # shown. This field is mutually exclusive with visible_foreground_color,
+                    # and must be set to an RGB-type color. If visible_background_color is
+                    # also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColorStyle": { # A color value. # The foreground color to filter by; only cells with this foreground color
+                    # are shown. This field is mutually exclusive with
+                    # visible_background_color, and must be set to an RGB-type color. If
+                    # visible_foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to filter by; only cells with this foreground color
+                    # are shown. Mutually exclusive with visible_background_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
+                    # (This does not override hidden_values -- if a value is listed there,
+                    #  it will still be hidden.)
+                    # BooleanConditions are used by conditional formatting,
+                    # data validation, and the criteria in filters.
+                  "values": [ # The values of the condition. The number of supported values depends
+                      # on the condition type.  Some support zero values,
+                      # others one or two values,
+                      # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                    { # The value of the condition.
+                      "relativeDate": "A String", # A relative date (based on the current date).
+                          # Valid only if the type is
+                          # DATE_BEFORE,
+                          # DATE_AFTER,
+                          # DATE_ON_OR_BEFORE or
+                          # DATE_ON_OR_AFTER.
+                          #
+                          # Relative dates are not supported in data validation.
+                          # They are supported only in conditional formatting and
+                          # conditional filters.
+                      "userEnteredValue": "A String", # A value the condition is based on.
+                          # The value is parsed as if the user typed into a cell.
+                          # Formulas are supported (and must begin with an `=` or a '+').
+                    },
+                  ],
+                  "type": "A String", # The type of condition.
+                },
+              },
             },
           },
-          "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule.
-              # the interpolation points listed. The format of a cell will vary
-              # based on its contents as compared to the values of the interpolation
-              # points.
-            "maxpoint": { # A single interpolation point on a gradient conditional format. # The final interpolation point.
-                # These pin the gradient color scale according to the color,
-                # type and value chosen.
-              "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
-                    #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                    #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+        },
+        "updateDeveloperMetadata": { # The response from updating developer metadata. # A reply from updating a developer metadata entry.
+          "developerMetadata": [ # The updated developer metadata.
+            { # Developer metadata associated with a location or object in a spreadsheet.
+                # Developer metadata may be used to associate arbitrary data with various
+                # parts of a spreadsheet and will remain associated at those locations as they
+                # move around and the spreadsheet is edited.  For example, if developer
+                # metadata is associated with row 5 and another row is then subsequently
+                # inserted above row 5, that original metadata will still be associated with
+                # the row it was first associated with (what is now row 6). If the associated
+                # object is deleted its metadata is deleted too.
+              "metadataId": 42, # The spreadsheet-scoped unique ID that identifies the metadata. IDs may be
+                  # specified when metadata is created, otherwise one will be randomly
+                  # generated and assigned. Must be positive.
+              "metadataValue": "A String", # Data associated with the metadata's key.
+              "location": { # A location where metadata may be associated in a spreadsheet. # The location where the metadata is associated.
+                "locationType": "A String", # The type of location this object represents.  This field is read-only.
+                "dimensionRange": { # A range along a single dimension on a sheet. # Represents the row or column when metadata is associated with
+                    # a dimension. The specified DimensionRange must represent a single row
+                    # or column; it cannot be unbounded or span multiple rows or columns.
+                    # All indexes are zero-based.
+                    # Indexes are half open: the start index is inclusive
+                    # and the end index is exclusive.
+                    # Missing indexes indicate the range is unbounded on that side.
+                  "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
+                  "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
+                  "sheetId": 42, # The sheet this span is on.
+                  "dimension": "A String", # The dimension of the span.
+                },
+                "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+                "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
               },
-              "type": "A String", # How the value should be interpreted.
-              "value": "A String", # The value this interpolation point uses.  May be a formula.
-                  # Unused if type is MIN or
-                  # MAX.
+              "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
+                  # specified.
+              "metadataKey": "A String", # The metadata key. There may be multiple metadata in a spreadsheet with the
+                  # same key.  Developer metadata must always have a key specified.
             },
-            "midpoint": { # A single interpolation point on a gradient conditional format. # An optional midway interpolation point.
-                # These pin the gradient color scale according to the color,
-                # type and value chosen.
-              "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
-                    #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                    #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-              },
-              "type": "A String", # How the value should be interpreted.
-              "value": "A String", # The value this interpolation point uses.  May be a formula.
-                  # Unused if type is MIN or
-                  # MAX.
-            },
-            "minpoint": { # A single interpolation point on a gradient conditional format. # The starting interpolation point.
-                # These pin the gradient color scale according to the color,
-                # type and value chosen.
-              "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
-                    #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                    #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-              },
-              "type": "A String", # How the value should be interpreted.
-              "value": "A String", # The value this interpolation point uses.  May be a formula.
-                  # Unused if type is MIN or
-                  # MAX.
-            },
+          ],
+        },
+        "deleteDuplicates": { # The result of removing duplicates in a range. # A reply from removing rows containing duplicate values.
+          "duplicatesRemovedCount": 42, # The number of duplicate rows removed.
+        },
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(body=None, x__xgafv=None)</code>
+  <pre>Creates a spreadsheet, returning the newly created spreadsheet.
+
+Args:
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Resource that represents a spreadsheet.
+  "developerMetadata": [ # The developer metadata associated with a spreadsheet.
+    { # Developer metadata associated with a location or object in a spreadsheet.
+        # Developer metadata may be used to associate arbitrary data with various
+        # parts of a spreadsheet and will remain associated at those locations as they
+        # move around and the spreadsheet is edited.  For example, if developer
+        # metadata is associated with row 5 and another row is then subsequently
+        # inserted above row 5, that original metadata will still be associated with
+        # the row it was first associated with (what is now row 6). If the associated
+        # object is deleted its metadata is deleted too.
+      "metadataId": 42, # The spreadsheet-scoped unique ID that identifies the metadata. IDs may be
+          # specified when metadata is created, otherwise one will be randomly
+          # generated and assigned. Must be positive.
+      "metadataValue": "A String", # Data associated with the metadata's key.
+      "location": { # A location where metadata may be associated in a spreadsheet. # The location where the metadata is associated.
+        "locationType": "A String", # The type of location this object represents.  This field is read-only.
+        "dimensionRange": { # A range along a single dimension on a sheet. # Represents the row or column when metadata is associated with
+            # a dimension. The specified DimensionRange must represent a single row
+            # or column; it cannot be unbounded or span multiple rows or columns.
+            # All indexes are zero-based.
+            # Indexes are half open: the start index is inclusive
+            # and the end index is exclusive.
+            # Missing indexes indicate the range is unbounded on that side.
+          "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
+          "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
+          "sheetId": 42, # The sheet this span is on.
+          "dimension": "A String", # The dimension of the span.
+        },
+        "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+        "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
+      },
+      "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
+          # specified.
+      "metadataKey": "A String", # The metadata key. There may be multiple metadata in a spreadsheet with the
+          # same key.  Developer metadata must always have a key specified.
+    },
+  ],
+  "sheets": [ # The sheets that are part of a spreadsheet.
+    { # A sheet in a spreadsheet.
+      "columnGroups": [ # All column groups on this sheet, ordered by increasing range start index,
+          # then by group depth.
+        { # A group over an interval of rows or columns on a sheet, which can contain or
+            # be contained within other groups. A group can be collapsed or expanded as a
+            # unit on the sheet.
+          "depth": 42, # The depth of the group, representing how many groups have a range that
+              # wholly contains the range of this group.
+          "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
+              # collapsed if an overlapping group at a shallower depth is expanded.
+              #
+              # A true value does not imply that all dimensions within the group are
+              # hidden, since a dimension's visibility can change independently from this
+              # group property. However, when this property is updated, all dimensions
+              # within it are set to hidden if this field is true, or set to visible if
+              # this field is false.
+          "range": { # A range along a single dimension on a sheet. # The range over which this group exists.
+              # All indexes are zero-based.
+              # Indexes are half open: the start index is inclusive
+              # and the end index is exclusive.
+              # Missing indexes indicate the range is unbounded on that side.
+            "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
+            "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
+            "sheetId": 42, # The sheet this span is on.
+            "dimension": "A String", # The dimension of the span.
           },
         },
       ],
@@ -48765,14 +98763,14 @@
                 #
                 #      static Color* toProto(UIColor* color) {
                 #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                 #            return nil;
                 #          }
                 #          Color* result = [[Color alloc] init];
                 #          [result setRed:red];
                 #          [result setGreen:green];
                 #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
+                #          if (alpha &lt;= 0.9999) {
                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                 #          }
                 #          [result autorelease];
@@ -48802,11 +98800,11 @@
                 #     };
                 #
                 #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                 #       var hexString = rgbNumber.toString(16);
                 #       var missingZeros = 6 - hexString.length;
                 #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
+                #       for (var i = 0; i &lt; missingZeros; i++) {
                 #          resultBuilder.push('0');
                 #       }
                 #       resultBuilder.push(hexString);
@@ -48829,12 +98827,12 @@
               "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
               "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
             },
-            "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first
-                # row or column will be filled with this color and the colors will
-                # alternate between first_band_color and second_band_color starting
-                # from the second row or column. Otherwise, the first row or column will be
-                # filled with first_band_color and the colors will proceed to alternate
-                # as they normally would.
+            "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first row
+                # or column is filled with this color and the colors alternate between
+                # first_band_color and second_band_color starting from the second
+                # row or column. Otherwise, the first row or column is filled with
+                # first_band_color and the colors proceed to alternate as they normally
+                # would.
                 # for simplicity of conversion to/from color representations in various
                 # languages over compactness; for example, the fields of this representation
                 # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -48904,14 +98902,14 @@
                 #
                 #      static Color* toProto(UIColor* color) {
                 #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                 #            return nil;
                 #          }
                 #          Color* result = [[Color alloc] init];
                 #          [result setRed:red];
                 #          [result setGreen:green];
                 #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
+                #          if (alpha &lt;= 0.9999) {
                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                 #          }
                 #          [result autorelease];
@@ -48941,11 +98939,11 @@
                 #     };
                 #
                 #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                 #       var hexString = rgbNumber.toString(16);
                 #       var missingZeros = 6 - hexString.length;
                 #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
+                #       for (var i = 0; i &lt; missingZeros; i++) {
                 #          resultBuilder.push('0');
                 #       }
                 #       resultBuilder.push(hexString);
@@ -48968,142 +98966,426 @@
               "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
               "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
             },
-            "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
-                # row or column will be filled with either first_band_color or
+            "footerColorStyle": { # A color value. # The color of the last row or column. If this field is not set, the last
+                # row or column is filled with either first_band_color or
                 # second_band_color, depending on the color of the previous row or
                 # column.
-                # for simplicity of conversion to/from color representations in various
-                # languages over compactness; for example, the fields of this representation
-                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                # method in iOS; and, with just a little work, it can be easily formatted into
-                # a CSS "rgba()" string in JavaScript, as well.
-                #
-                # Note: this proto does not carry information about the absolute color space
-                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                # space.
-                #
-                # Example (Java):
-                #
-                #      import com.google.type.Color;
-                #
-                #      // ...
-                #      public static java.awt.Color fromProto(Color protocolor) {
-                #        float alpha = protocolor.hasAlpha()
-                #            ? protocolor.getAlpha().getValue()
-                #            : 1.0;
-                #
-                #        return new java.awt.Color(
-                #            protocolor.getRed(),
-                #            protocolor.getGreen(),
-                #            protocolor.getBlue(),
-                #            alpha);
-                #      }
-                #
-                #      public static Color toProto(java.awt.Color color) {
-                #        float red = (float) color.getRed();
-                #        float green = (float) color.getGreen();
-                #        float blue = (float) color.getBlue();
-                #        float denominator = 255.0;
-                #        Color.Builder resultBuilder =
-                #            Color
-                #                .newBuilder()
-                #                .setRed(red / denominator)
-                #                .setGreen(green / denominator)
-                #                .setBlue(blue / denominator);
-                #        int alpha = color.getAlpha();
-                #        if (alpha != 255) {
-                #          result.setAlpha(
-                #              FloatValue
-                #                  .newBuilder()
-                #                  .setValue(((float) alpha) / denominator)
-                #                  .build());
-                #        }
-                #        return resultBuilder.build();
-                #      }
-                #      // ...
-                #
-                # Example (iOS / Obj-C):
-                #
-                #      // ...
-                #      static UIColor* fromProto(Color* protocolor) {
-                #         float red = [protocolor red];
-                #         float green = [protocolor green];
-                #         float blue = [protocolor blue];
-                #         FloatValue* alpha_wrapper = [protocolor alpha];
-                #         float alpha = 1.0;
-                #         if (alpha_wrapper != nil) {
-                #           alpha = [alpha_wrapper value];
-                #         }
-                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                #      }
-                #
-                #      static Color* toProto(UIColor* color) {
-                #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                #            return nil;
-                #          }
-                #          Color* result = [[Color alloc] init];
-                #          [result setRed:red];
-                #          [result setGreen:green];
-                #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
-                #            [result setAlpha:floatWrapperWithValue(alpha)];
-                #          }
-                #          [result autorelease];
-                #          return result;
-                #     }
-                #     // ...
-                #
-                #  Example (JavaScript):
-                #
-                #     // ...
-                #
-                #     var protoToCssColor = function(rgb_color) {
-                #        var redFrac = rgb_color.red || 0.0;
-                #        var greenFrac = rgb_color.green || 0.0;
-                #        var blueFrac = rgb_color.blue || 0.0;
-                #        var red = Math.floor(redFrac * 255);
-                #        var green = Math.floor(greenFrac * 255);
-                #        var blue = Math.floor(blueFrac * 255);
-                #
-                #        if (!('alpha' in rgb_color)) {
-                #           return rgbToCssColor_(red, green, blue);
-                #        }
-                #
-                #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                #        var rgbParams = [red, green, blue].join(',');
-                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                #     };
-                #
-                #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                #       var hexString = rgbNumber.toString(16);
-                #       var missingZeros = 6 - hexString.length;
-                #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
-                #          resultBuilder.push('0');
-                #       }
-                #       resultBuilder.push(hexString);
-                #       return resultBuilder.join('');
-                #     };
-                #
-                #     // ...
-              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                  # the final pixel color is defined by the equation:
+                # If footer_color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
                   #
-                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
                   #
-                  # This means that a value of 1.0 corresponds to a solid color, whereas
-                  # a value of 0.0 corresponds to a completely transparent color. This
-                  # uses a wrapper message rather than a simple float scalar so that it is
-                  # possible to distinguish between a default value and the value being unset.
-                  # If omitted, this color object is to be rendered as a solid color
-                  # (as if the alpha value had been explicitly given with a value of 1.0).
-              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
+            "headerColorStyle": { # A color value. # The color of the first row or column. If this field is set, the first row
+                # or column is filled with this color and the colors alternate between
+                # first_band_color and second_band_color starting from the second
+                # row or column. Otherwise, the first row or column is filled with
+                # first_band_color and the colors proceed to alternate as they normally
+                # would. If header_color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
+            "secondBandColorStyle": { # A color value. # The second color that is alternating. (Required)
+                # If second_band_color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
             },
             "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required)
                 # for simplicity of conversion to/from color representations in various
@@ -49175,14 +99457,14 @@
                 #
                 #      static Color* toProto(UIColor* color) {
                 #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                 #            return nil;
                 #          }
                 #          Color* result = [[Color alloc] init];
                 #          [result setRed:red];
                 #          [result setGreen:green];
                 #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
+                #          if (alpha &lt;= 0.9999) {
                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                 #          }
                 #          [result autorelease];
@@ -49212,11 +99494,286 @@
                 #     };
                 #
                 #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                 #       var hexString = rgbNumber.toString(16);
                 #       var missingZeros = 6 - hexString.length;
                 #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
+            "firstBandColorStyle": { # A color value. # The first color that is alternating. (Required)
+                # If first_band_color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
+            "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
+                # row or column is filled with either first_band_color or
+                # second_band_color, depending on the color of the previous row or
+                # column.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
                 #          resultBuilder.push('0');
                 #       }
                 #       resultBuilder.push(hexString);
@@ -49325,14 +99882,14 @@
                 #
                 #      static Color* toProto(UIColor* color) {
                 #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                 #            return nil;
                 #          }
                 #          Color* result = [[Color alloc] init];
                 #          [result setRed:red];
                 #          [result setGreen:green];
                 #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
+                #          if (alpha &lt;= 0.9999) {
                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                 #          }
                 #          [result autorelease];
@@ -49362,11 +99919,11 @@
                 #     };
                 #
                 #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                 #       var hexString = rgbNumber.toString(16);
                 #       var missingZeros = 6 - hexString.length;
                 #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
+                #       for (var i = 0; i &lt; missingZeros; i++) {
                 #          resultBuilder.push('0');
                 #       }
                 #       resultBuilder.push(hexString);
@@ -49389,12 +99946,12 @@
               "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
               "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
             },
-            "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first
-                # row or column will be filled with this color and the colors will
-                # alternate between first_band_color and second_band_color starting
-                # from the second row or column. Otherwise, the first row or column will be
-                # filled with first_band_color and the colors will proceed to alternate
-                # as they normally would.
+            "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first row
+                # or column is filled with this color and the colors alternate between
+                # first_band_color and second_band_color starting from the second
+                # row or column. Otherwise, the first row or column is filled with
+                # first_band_color and the colors proceed to alternate as they normally
+                # would.
                 # for simplicity of conversion to/from color representations in various
                 # languages over compactness; for example, the fields of this representation
                 # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -49464,14 +100021,14 @@
                 #
                 #      static Color* toProto(UIColor* color) {
                 #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                 #            return nil;
                 #          }
                 #          Color* result = [[Color alloc] init];
                 #          [result setRed:red];
                 #          [result setGreen:green];
                 #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
+                #          if (alpha &lt;= 0.9999) {
                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                 #          }
                 #          [result autorelease];
@@ -49501,11 +100058,11 @@
                 #     };
                 #
                 #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                 #       var hexString = rgbNumber.toString(16);
                 #       var missingZeros = 6 - hexString.length;
                 #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
+                #       for (var i = 0; i &lt; missingZeros; i++) {
                 #          resultBuilder.push('0');
                 #       }
                 #       resultBuilder.push(hexString);
@@ -49528,142 +100085,426 @@
               "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
               "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
             },
-            "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
-                # row or column will be filled with either first_band_color or
+            "footerColorStyle": { # A color value. # The color of the last row or column. If this field is not set, the last
+                # row or column is filled with either first_band_color or
                 # second_band_color, depending on the color of the previous row or
                 # column.
-                # for simplicity of conversion to/from color representations in various
-                # languages over compactness; for example, the fields of this representation
-                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                # method in iOS; and, with just a little work, it can be easily formatted into
-                # a CSS "rgba()" string in JavaScript, as well.
-                #
-                # Note: this proto does not carry information about the absolute color space
-                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                # space.
-                #
-                # Example (Java):
-                #
-                #      import com.google.type.Color;
-                #
-                #      // ...
-                #      public static java.awt.Color fromProto(Color protocolor) {
-                #        float alpha = protocolor.hasAlpha()
-                #            ? protocolor.getAlpha().getValue()
-                #            : 1.0;
-                #
-                #        return new java.awt.Color(
-                #            protocolor.getRed(),
-                #            protocolor.getGreen(),
-                #            protocolor.getBlue(),
-                #            alpha);
-                #      }
-                #
-                #      public static Color toProto(java.awt.Color color) {
-                #        float red = (float) color.getRed();
-                #        float green = (float) color.getGreen();
-                #        float blue = (float) color.getBlue();
-                #        float denominator = 255.0;
-                #        Color.Builder resultBuilder =
-                #            Color
-                #                .newBuilder()
-                #                .setRed(red / denominator)
-                #                .setGreen(green / denominator)
-                #                .setBlue(blue / denominator);
-                #        int alpha = color.getAlpha();
-                #        if (alpha != 255) {
-                #          result.setAlpha(
-                #              FloatValue
-                #                  .newBuilder()
-                #                  .setValue(((float) alpha) / denominator)
-                #                  .build());
-                #        }
-                #        return resultBuilder.build();
-                #      }
-                #      // ...
-                #
-                # Example (iOS / Obj-C):
-                #
-                #      // ...
-                #      static UIColor* fromProto(Color* protocolor) {
-                #         float red = [protocolor red];
-                #         float green = [protocolor green];
-                #         float blue = [protocolor blue];
-                #         FloatValue* alpha_wrapper = [protocolor alpha];
-                #         float alpha = 1.0;
-                #         if (alpha_wrapper != nil) {
-                #           alpha = [alpha_wrapper value];
-                #         }
-                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                #      }
-                #
-                #      static Color* toProto(UIColor* color) {
-                #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                #            return nil;
-                #          }
-                #          Color* result = [[Color alloc] init];
-                #          [result setRed:red];
-                #          [result setGreen:green];
-                #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
-                #            [result setAlpha:floatWrapperWithValue(alpha)];
-                #          }
-                #          [result autorelease];
-                #          return result;
-                #     }
-                #     // ...
-                #
-                #  Example (JavaScript):
-                #
-                #     // ...
-                #
-                #     var protoToCssColor = function(rgb_color) {
-                #        var redFrac = rgb_color.red || 0.0;
-                #        var greenFrac = rgb_color.green || 0.0;
-                #        var blueFrac = rgb_color.blue || 0.0;
-                #        var red = Math.floor(redFrac * 255);
-                #        var green = Math.floor(greenFrac * 255);
-                #        var blue = Math.floor(blueFrac * 255);
-                #
-                #        if (!('alpha' in rgb_color)) {
-                #           return rgbToCssColor_(red, green, blue);
-                #        }
-                #
-                #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                #        var rgbParams = [red, green, blue].join(',');
-                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                #     };
-                #
-                #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                #       var hexString = rgbNumber.toString(16);
-                #       var missingZeros = 6 - hexString.length;
-                #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
-                #          resultBuilder.push('0');
-                #       }
-                #       resultBuilder.push(hexString);
-                #       return resultBuilder.join('');
-                #     };
-                #
-                #     // ...
-              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                  # the final pixel color is defined by the equation:
+                # If footer_color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
                   #
-                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
                   #
-                  # This means that a value of 1.0 corresponds to a solid color, whereas
-                  # a value of 0.0 corresponds to a completely transparent color. This
-                  # uses a wrapper message rather than a simple float scalar so that it is
-                  # possible to distinguish between a default value and the value being unset.
-                  # If omitted, this color object is to be rendered as a solid color
-                  # (as if the alpha value had been explicitly given with a value of 1.0).
-              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
+            "headerColorStyle": { # A color value. # The color of the first row or column. If this field is set, the first row
+                # or column is filled with this color and the colors alternate between
+                # first_band_color and second_band_color starting from the second
+                # row or column. Otherwise, the first row or column is filled with
+                # first_band_color and the colors proceed to alternate as they normally
+                # would. If header_color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
+            "secondBandColorStyle": { # A color value. # The second color that is alternating. (Required)
+                # If second_band_color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
             },
             "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required)
                 # for simplicity of conversion to/from color representations in various
@@ -49735,14 +100576,14 @@
                 #
                 #      static Color* toProto(UIColor* color) {
                 #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                 #            return nil;
                 #          }
                 #          Color* result = [[Color alloc] init];
                 #          [result setRed:red];
                 #          [result setGreen:green];
                 #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
+                #          if (alpha &lt;= 0.9999) {
                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                 #          }
                 #          [result autorelease];
@@ -49772,11 +100613,286 @@
                 #     };
                 #
                 #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                 #       var hexString = rgbNumber.toString(16);
                 #       var missingZeros = 6 - hexString.length;
                 #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
+            "firstBandColorStyle": { # A color value. # The first color that is alternating. (Required)
+                # If first_band_color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
+            "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
+                # row or column is filled with either first_band_color or
+                # second_band_color, depending on the color of the previous row or
+                # column.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
                 #          resultBuilder.push('0');
                 #       }
                 #       resultBuilder.push(hexString);
@@ -49879,400 +100995,282 @@
         "sortSpecs": [ # The sort order per column. Later specifications are used when values
             # are equal in the earlier specifications.
           { # A sort order associated with a specific column or row.
-            "sortOrder": "A String", # The order data should be sorted.
-            "dimensionIndex": 42, # The dimension the sort should be applied to.
-          },
-        ],
-        "criteria": { # The criteria for showing/hiding values per column.
-            # The map's key is the column index, and the value is the criteria for
-            # that column.
-          "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
-            "hiddenValues": [ # Values that should be hidden.
-              "A String",
-            ],
-            "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
-                # (This does not override hiddenValues -- if a value is listed there,
-                #  it will still be hidden.)
-                # BooleanConditions are used by conditional formatting,
-                # data validation, and the criteria in filters.
-              "values": [ # The values of the condition. The number of supported values depends
-                  # on the condition type.  Some support zero values,
-                  # others one or two values,
-                  # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
-                { # The value of the condition.
-                  "relativeDate": "A String", # A relative date (based on the current date).
-                      # Valid only if the type is
-                      # DATE_BEFORE,
-                      # DATE_AFTER,
-                      # DATE_ON_OR_BEFORE or
-                      # DATE_ON_OR_AFTER.
-                      #
-                      # Relative dates are not supported in data validation.
-                      # They are supported only in conditional formatting and
-                      # conditional filters.
-                  "userEnteredValue": "A String", # A value the condition is based on.
-                      # The value is parsed as if the user typed into a cell.
-                      # Formulas are supported (and must begin with an `=` or a '+').
-                },
-              ],
-              "type": "A String", # The type of condition.
+            "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to sort by; cells with this foreground color are
+                # sorted to the top. Mutually exclusive with background_color.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
             },
-          },
-        },
-      },
-      "developerMetadata": [ # The developer metadata associated with a sheet.
-        { # Developer metadata associated with a location or object in a spreadsheet.
-            # Developer metadata may be used to associate arbitrary data with various
-            # parts of a spreadsheet and will remain associated at those locations as they
-            # move around and the spreadsheet is edited.  For example, if developer
-            # metadata is associated with row 5 and another row is then subsequently
-            # inserted above row 5, that original metadata will still be associated with
-            # the row it was first associated with (what is now row 6). If the associated
-            # object is deleted its metadata is deleted too.
-          "metadataId": 42, # The spreadsheet-scoped unique ID that identifies the metadata. IDs may be
-              # specified when metadata is created, otherwise one will be randomly
-              # generated and assigned. Must be positive.
-          "metadataValue": "A String", # Data associated with the metadata's key.
-          "location": { # A location where metadata may be associated in a spreadsheet. # The location where the metadata is associated.
-            "locationType": "A String", # The type of location this object represents.  This field is read-only.
-            "dimensionRange": { # A range along a single dimension on a sheet. # Represents the row or column when metadata is associated with
-                # a dimension. The specified DimensionRange must represent a single row
-                # or column; it cannot be unbounded or span multiple rows or columns.
-                # All indexes are zero-based.
-                # Indexes are half open: the start index is inclusive
-                # and the end index is exclusive.
-                # Missing indexes indicate the range is unbounded on that side.
-              "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
-              "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
-              "sheetId": 42, # The sheet this span is on.
-              "dimension": "A String", # The dimension of the span.
+            "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to sort by; cells with this fill color are sorted
+                # to the top. Mutually exclusive with foreground_color.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
             },
-            "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
-            "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
-          },
-          "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
-              # specified.
-          "metadataKey": "A String", # The metadata key. There may be multiple metadata in a spreadsheet with the
-              # same key.  Developer metadata must always have a key specified.
-        },
-      ],
-      "columnGroups": [ # All column groups on this sheet, ordered by increasing range start index,
-          # then by group depth.
-        { # A group over an interval of rows or columns on a sheet, which can contain or
-            # be contained within other groups. A group can be collapsed or expanded as a
-            # unit on the sheet.
-          "range": { # A range along a single dimension on a sheet. # The range over which this group exists.
-              # All indexes are zero-based.
-              # Indexes are half open: the start index is inclusive
-              # and the end index is exclusive.
-              # Missing indexes indicate the range is unbounded on that side.
-            "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
-            "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
-            "sheetId": 42, # The sheet this span is on.
-            "dimension": "A String", # The dimension of the span.
-          },
-          "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
-              # collapsed if an overlapping group at a shallower depth is expanded.
-              #
-              # A true value does not imply that all dimensions within the group are
-              # hidden, since a dimension's visibility can change independently from this
-              # group property. However, when this property is updated, all dimensions
-              # within it are set to hidden if this field is true, or set to visible if
-              # this field is false.
-          "depth": 42, # The depth of the group, representing how many groups have a range that
-              # wholly contains the range of this group.
-        },
-      ],
-      "properties": { # Properties of a sheet. # The properties of the sheet.
-        "sheetType": "A String", # The type of sheet. Defaults to GRID.
-            # This field cannot be changed once set.
-        "index": 42, # The index of the sheet within the spreadsheet.
-            # When adding or updating sheet properties, if this field
-            # is excluded then the sheet is added or moved to the end
-            # of the sheet list. When updating sheet indices or inserting
-            # sheets, movement is considered in "before the move" indexes.
-            # For example, if there were 3 sheets (S1, S2, S3) in order to
-            # move S1 ahead of S2 the index would have to be set to 2. A sheet
-            # index update request is ignored if the requested index is
-            # identical to the sheets current index or if the requested new
-            # index is equal to the current sheet index + 1.
-        "title": "A String", # The name of the sheet.
-        "gridProperties": { # Properties of a grid. # Additional properties of the sheet if this sheet is a grid.
-            # (If the sheet is an object sheet, containing a chart or image, then
-            # this field will be absent.)
-            # When writing it is an error to set any grid properties on non-grid sheets.
-          "columnCount": 42, # The number of columns in the grid.
-          "rowGroupControlAfter": True or False, # True if the row grouping control toggle is shown after the group.
-          "columnGroupControlAfter": True or False, # True if the column grouping control toggle is shown after the group.
-          "frozenRowCount": 42, # The number of rows that are frozen in the grid.
-          "frozenColumnCount": 42, # The number of columns that are frozen in the grid.
-          "rowCount": 42, # The number of rows in the grid.
-          "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI.
-        },
-        "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet.
-        "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI.
-            # for simplicity of conversion to/from color representations in various
-            # languages over compactness; for example, the fields of this representation
-            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-            # method in iOS; and, with just a little work, it can be easily formatted into
-            # a CSS "rgba()" string in JavaScript, as well.
-            #
-            # Note: this proto does not carry information about the absolute color space
-            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-            # space.
-            #
-            # Example (Java):
-            #
-            #      import com.google.type.Color;
-            #
-            #      // ...
-            #      public static java.awt.Color fromProto(Color protocolor) {
-            #        float alpha = protocolor.hasAlpha()
-            #            ? protocolor.getAlpha().getValue()
-            #            : 1.0;
-            #
-            #        return new java.awt.Color(
-            #            protocolor.getRed(),
-            #            protocolor.getGreen(),
-            #            protocolor.getBlue(),
-            #            alpha);
-            #      }
-            #
-            #      public static Color toProto(java.awt.Color color) {
-            #        float red = (float) color.getRed();
-            #        float green = (float) color.getGreen();
-            #        float blue = (float) color.getBlue();
-            #        float denominator = 255.0;
-            #        Color.Builder resultBuilder =
-            #            Color
-            #                .newBuilder()
-            #                .setRed(red / denominator)
-            #                .setGreen(green / denominator)
-            #                .setBlue(blue / denominator);
-            #        int alpha = color.getAlpha();
-            #        if (alpha != 255) {
-            #          result.setAlpha(
-            #              FloatValue
-            #                  .newBuilder()
-            #                  .setValue(((float) alpha) / denominator)
-            #                  .build());
-            #        }
-            #        return resultBuilder.build();
-            #      }
-            #      // ...
-            #
-            # Example (iOS / Obj-C):
-            #
-            #      // ...
-            #      static UIColor* fromProto(Color* protocolor) {
-            #         float red = [protocolor red];
-            #         float green = [protocolor green];
-            #         float blue = [protocolor blue];
-            #         FloatValue* alpha_wrapper = [protocolor alpha];
-            #         float alpha = 1.0;
-            #         if (alpha_wrapper != nil) {
-            #           alpha = [alpha_wrapper value];
-            #         }
-            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-            #      }
-            #
-            #      static Color* toProto(UIColor* color) {
-            #          CGFloat red, green, blue, alpha;
-            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-            #            return nil;
-            #          }
-            #          Color* result = [[Color alloc] init];
-            #          [result setRed:red];
-            #          [result setGreen:green];
-            #          [result setBlue:blue];
-            #          if (alpha <= 0.9999) {
-            #            [result setAlpha:floatWrapperWithValue(alpha)];
-            #          }
-            #          [result autorelease];
-            #          return result;
-            #     }
-            #     // ...
-            #
-            #  Example (JavaScript):
-            #
-            #     // ...
-            #
-            #     var protoToCssColor = function(rgb_color) {
-            #        var redFrac = rgb_color.red || 0.0;
-            #        var greenFrac = rgb_color.green || 0.0;
-            #        var blueFrac = rgb_color.blue || 0.0;
-            #        var red = Math.floor(redFrac * 255);
-            #        var green = Math.floor(greenFrac * 255);
-            #        var blue = Math.floor(blueFrac * 255);
-            #
-            #        if (!('alpha' in rgb_color)) {
-            #           return rgbToCssColor_(red, green, blue);
-            #        }
-            #
-            #        var alphaFrac = rgb_color.alpha.value || 0.0;
-            #        var rgbParams = [red, green, blue].join(',');
-            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-            #     };
-            #
-            #     var rgbToCssColor_ = function(red, green, blue) {
-            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-            #       var hexString = rgbNumber.toString(16);
-            #       var missingZeros = 6 - hexString.length;
-            #       var resultBuilder = ['#'];
-            #       for (var i = 0; i < missingZeros; i++) {
-            #          resultBuilder.push('0');
-            #       }
-            #       resultBuilder.push(hexString);
-            #       return resultBuilder.join('');
-            #     };
-            #
-            #     // ...
-          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-              # the final pixel color is defined by the equation:
-              #
-              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-              #
-              # This means that a value of 1.0 corresponds to a solid color, whereas
-              # a value of 0.0 corresponds to a completely transparent color. This
-              # uses a wrapper message rather than a simple float scalar so that it is
-              # possible to distinguish between a default value and the value being unset.
-              # If omitted, this color object is to be rendered as a solid color
-              # (as if the alpha value had been explicitly given with a value of 1.0).
-          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-        },
-        "hidden": True or False, # True if the sheet is hidden in the UI, false if it's visible.
-        "sheetId": 42, # The ID of the sheet. Must be non-negative.
-            # This field cannot be changed once set.
-      },
-      "filterViews": [ # The filter views in this sheet.
-        { # A filter view.
-          "title": "A String", # The name of the filter view.
-          "namedRangeId": "A String", # The named range this filter view is backed by, if any.
-              #
-              # When writing, only one of range or named_range_id
-              # may be set.
-          "filterViewId": 42, # The ID of the filter view.
-          "range": { # A range on a sheet. # The range this filter view covers.
-              #
-              # When writing, only one of range or named_range_id
-              # may be set.
-              # All indexes are zero-based.
-              # Indexes are half open, e.g the start index is inclusive
-              # and the end index is exclusive -- [start_index, end_index).
-              # Missing indexes indicate the range is unbounded on that side.
-              #
-              # For example, if `"Sheet1"` is sheet ID 0, then:
-              #
-              #   `Sheet1!A1:A1 == sheet_id: 0,
-              #                   start_row_index: 0, end_row_index: 1,
-              #                   start_column_index: 0, end_column_index: 1`
-              #
-              #   `Sheet1!A3:B4 == sheet_id: 0,
-              #                   start_row_index: 2, end_row_index: 4,
-              #                   start_column_index: 0, end_column_index: 2`
-              #
-              #   `Sheet1!A:B == sheet_id: 0,
-              #                 start_column_index: 0, end_column_index: 2`
-              #
-              #   `Sheet1!A5:B == sheet_id: 0,
-              #                  start_row_index: 4,
-              #                  start_column_index: 0, end_column_index: 2`
-              #
-              #   `Sheet1 == sheet_id:0`
-              #
-              # The start index must always be less than or equal to the end index.
-              # If the start index equals the end index, then the range is empty.
-              # Empty ranges are typically not meaningful and are usually rendered in the
-              # UI as `#REF!`.
-            "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-            "sheetId": 42, # The sheet this range is on.
-            "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-          },
-          "sortSpecs": [ # The sort order per column. Later specifications are used when values
-              # are equal in the earlier specifications.
-            { # A sort order associated with a specific column or row.
-              "sortOrder": "A String", # The order data should be sorted.
-              "dimensionIndex": 42, # The dimension the sort should be applied to.
-            },
-          ],
-          "criteria": { # The criteria for showing/hiding values per column.
-              # The map's key is the column index, and the value is the criteria for
-              # that column.
-            "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
-              "hiddenValues": [ # Values that should be hidden.
-                "A String",
-              ],
-              "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
-                  # (This does not override hiddenValues -- if a value is listed there,
-                  #  it will still be hidden.)
-                  # BooleanConditions are used by conditional formatting,
-                  # data validation, and the criteria in filters.
-                "values": [ # The values of the condition. The number of supported values depends
-                    # on the condition type.  Some support zero values,
-                    # others one or two values,
-                    # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
-                  { # The value of the condition.
-                    "relativeDate": "A String", # A relative date (based on the current date).
-                        # Valid only if the type is
-                        # DATE_BEFORE,
-                        # DATE_AFTER,
-                        # DATE_ON_OR_BEFORE or
-                        # DATE_ON_OR_AFTER.
-                        #
-                        # Relative dates are not supported in data validation.
-                        # They are supported only in conditional formatting and
-                        # conditional filters.
-                    "userEnteredValue": "A String", # A value the condition is based on.
-                        # The value is parsed as if the user typed into a cell.
-                        # Formulas are supported (and must begin with an `=` or a '+').
-                  },
-                ],
-                "type": "A String", # The type of condition.
-              },
-            },
-          },
-        },
-      ],
-      "charts": [ # The specifications of every chart on this sheet.
-        { # A chart embedded in a sheet.
-          "chartId": 42, # The ID of the chart.
-          "position": { # The position of an embedded object such as a chart. # The position of the chart.
-            "newSheet": True or False, # If true, the embedded object is put on a new sheet whose ID
-                # is chosen for you. Used only when writing.
-            "sheetId": 42, # The sheet this is on. Set only if the embedded object
-                # is on its own sheet. Must be non-negative.
-            "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid.
-              "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to.
-                  # All indexes are zero-based.
-                "rowIndex": 42, # The row index of the coordinate.
-                "columnIndex": 42, # The column index of the coordinate.
-                "sheetId": 42, # The sheet this coordinate is on.
-              },
-              "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
-              "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
-                  # from the anchor cell.
-              "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
-                  # from the anchor cell.
-              "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
-            },
-          },
-          "spec": { # The specifications of a chart. # The specification of the chart.
-            "fontName": "A String", # The name of the font to use by default for all chart text (e.g. title,
-                # axis labels, legend).  If a font is specified for a specific part of the
-                # chart it will override this font name.
-            "altText": "A String", # The alternative text that describes the chart.  This is often used
-                # for accessibility.
-            "subtitle": "A String", # The subtitle of the chart.
-            "subtitleTextFormat": { # The format of a run of text in a cell. # The subtitle text format.
-                # Strikethrough and underline are not supported.
-                # Absent values indicate that the field isn't specified.
-              "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+            "foregroundColorStyle": { # A color value. # The foreground color to sort by; cells with this foreground color are
+                # sorted to the top. Mutually exclusive with background_color, and must
+                # be an RGB-type color. If foreground_color is also set, this field takes
+                # precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
                   # for simplicity of conversion to/from color representations in various
                   # languages over compactness; for example, the fields of this representation
                   # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -50342,14 +101340,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -50379,11 +101377,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -50406,12 +101404,3564 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "bold": True or False, # True if the text is bold.
-              "strikethrough": True or False, # True if the text has a strikethrough.
-              "fontFamily": "A String", # The font family.
-              "fontSize": 42, # The size of the font.
-              "italic": True or False, # True if the text is italicized.
-              "underline": True or False, # True if the text is underlined.
+            },
+            "backgroundColorStyle": { # A color value. # The background fill color to sort by; cells with this fill color are sorted
+                # to the top. Mutually exclusive with foreground_color, and must be an
+                # RGB-type color. If background_color is also set, this field takes
+                # precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
+            "sortOrder": "A String", # The order data should be sorted.
+            "dimensionIndex": 42, # The dimension the sort should be applied to.
+          },
+        ],
+        "criteria": { # The criteria for showing/hiding values per column.
+            # The map's key is the column index, and the value is the criteria for
+            # that column.
+          "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
+            "visibleBackgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to filter by; only cells with this fill color are
+                # shown. Mutually exclusive with visible_foreground_color.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
+            "hiddenValues": [ # Values that should be hidden.
+              "A String",
+            ],
+            "visibleBackgroundColorStyle": { # A color value. # The background fill color to filter by; only cells with this fill color are
+                # shown. This field is mutually exclusive with visible_foreground_color,
+                # and must be set to an RGB-type color. If visible_background_color is
+                # also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
+            "visibleForegroundColorStyle": { # A color value. # The foreground color to filter by; only cells with this foreground color
+                # are shown. This field is mutually exclusive with
+                # visible_background_color, and must be set to an RGB-type color. If
+                # visible_foreground_color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
+            "visibleForegroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to filter by; only cells with this foreground color
+                # are shown. Mutually exclusive with visible_background_color.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
+            "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
+                # (This does not override hidden_values -- if a value is listed there,
+                #  it will still be hidden.)
+                # BooleanConditions are used by conditional formatting,
+                # data validation, and the criteria in filters.
+              "values": [ # The values of the condition. The number of supported values depends
+                  # on the condition type.  Some support zero values,
+                  # others one or two values,
+                  # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                { # The value of the condition.
+                  "relativeDate": "A String", # A relative date (based on the current date).
+                      # Valid only if the type is
+                      # DATE_BEFORE,
+                      # DATE_AFTER,
+                      # DATE_ON_OR_BEFORE or
+                      # DATE_ON_OR_AFTER.
+                      #
+                      # Relative dates are not supported in data validation.
+                      # They are supported only in conditional formatting and
+                      # conditional filters.
+                  "userEnteredValue": "A String", # A value the condition is based on.
+                      # The value is parsed as if the user typed into a cell.
+                      # Formulas are supported (and must begin with an `=` or a '+').
+                },
+              ],
+              "type": "A String", # The type of condition.
+            },
+          },
+        },
+      },
+      "developerMetadata": [ # The developer metadata associated with a sheet.
+        { # Developer metadata associated with a location or object in a spreadsheet.
+            # Developer metadata may be used to associate arbitrary data with various
+            # parts of a spreadsheet and will remain associated at those locations as they
+            # move around and the spreadsheet is edited.  For example, if developer
+            # metadata is associated with row 5 and another row is then subsequently
+            # inserted above row 5, that original metadata will still be associated with
+            # the row it was first associated with (what is now row 6). If the associated
+            # object is deleted its metadata is deleted too.
+          "metadataId": 42, # The spreadsheet-scoped unique ID that identifies the metadata. IDs may be
+              # specified when metadata is created, otherwise one will be randomly
+              # generated and assigned. Must be positive.
+          "metadataValue": "A String", # Data associated with the metadata's key.
+          "location": { # A location where metadata may be associated in a spreadsheet. # The location where the metadata is associated.
+            "locationType": "A String", # The type of location this object represents.  This field is read-only.
+            "dimensionRange": { # A range along a single dimension on a sheet. # Represents the row or column when metadata is associated with
+                # a dimension. The specified DimensionRange must represent a single row
+                # or column; it cannot be unbounded or span multiple rows or columns.
+                # All indexes are zero-based.
+                # Indexes are half open: the start index is inclusive
+                # and the end index is exclusive.
+                # Missing indexes indicate the range is unbounded on that side.
+              "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
+              "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
+              "sheetId": 42, # The sheet this span is on.
+              "dimension": "A String", # The dimension of the span.
+            },
+            "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+            "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
+          },
+          "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
+              # specified.
+          "metadataKey": "A String", # The metadata key. There may be multiple metadata in a spreadsheet with the
+              # same key.  Developer metadata must always have a key specified.
+        },
+      ],
+      "conditionalFormats": [ # The conditional format rules in this sheet.
+        { # A rule describing a conditional format.
+          "ranges": [ # The ranges that are formatted if the condition is true.
+              # All the ranges must be on the same grid.
+            { # A range on a sheet.
+                # All indexes are zero-based.
+                # Indexes are half open, e.g the start index is inclusive
+                # and the end index is exclusive -- [start_index, end_index).
+                # Missing indexes indicate the range is unbounded on that side.
+                #
+                # For example, if `"Sheet1"` is sheet ID 0, then:
+                #
+                #   `Sheet1!A1:A1 == sheet_id: 0,
+                #                   start_row_index: 0, end_row_index: 1,
+                #                   start_column_index: 0, end_column_index: 1`
+                #
+                #   `Sheet1!A3:B4 == sheet_id: 0,
+                #                   start_row_index: 2, end_row_index: 4,
+                #                   start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A:B == sheet_id: 0,
+                #                 start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A5:B == sheet_id: 0,
+                #                  start_row_index: 4,
+                #                  start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1 == sheet_id:0`
+                #
+                # The start index must always be less than or equal to the end index.
+                # If the start index equals the end index, then the range is empty.
+                # Empty ranges are typically not meaningful and are usually rendered in the
+                # UI as `#REF!`.
+              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "sheetId": 42, # The sheet this range is on.
+              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            },
+          ],
+          "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
+            "condition": { # A condition that can evaluate to true or false. # The condition of the rule. If the condition evaluates to true,
+                # the format is applied.
+                # BooleanConditions are used by conditional formatting,
+                # data validation, and the criteria in filters.
+              "values": [ # The values of the condition. The number of supported values depends
+                  # on the condition type.  Some support zero values,
+                  # others one or two values,
+                  # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                { # The value of the condition.
+                  "relativeDate": "A String", # A relative date (based on the current date).
+                      # Valid only if the type is
+                      # DATE_BEFORE,
+                      # DATE_AFTER,
+                      # DATE_ON_OR_BEFORE or
+                      # DATE_ON_OR_AFTER.
+                      #
+                      # Relative dates are not supported in data validation.
+                      # They are supported only in conditional formatting and
+                      # conditional filters.
+                  "userEnteredValue": "A String", # A value the condition is based on.
+                      # The value is parsed as if the user typed into a cell.
+                      # Formulas are supported (and must begin with an `=` or a '+').
+                },
+              ],
+              "type": "A String", # The type of condition.
+            },
+            "format": { # The format of a cell. # The format to apply.
+                # Conditional formatting can only apply a subset of formatting:
+                # bold, italic,
+                # strikethrough,
+                # foreground color &amp;
+                # background color.
+              "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                  # When updating padding, every field must be specified.
+                "top": 42, # The top padding of the cell.
+                "left": 42, # The left padding of the cell.
+                "right": 42, # The right padding of the cell.
+                "bottom": 42, # The bottom padding of the cell.
+              },
+              "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
+                "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
+                    # the user's locale will be used if necessary for the given type.
+                    # See the [Date and Number Formats guide](/sheets/api/guides/formats) for
+                    # more information about the supported patterns.
+                "type": "A String", # The type of the number format.
+                    # When writing, this field must be set.
+              },
+              "textDirection": "A String", # The direction of the text in the cell.
+              "backgroundColorStyle": { # A color value. # The background color of the cell.
+                  # If background_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
+              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+              "borders": { # The borders of the cell. # The borders of the cell.
+                "top": { # A border along a cell. # The top border of the cell.
+                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "width": 42, # The width of the border, in pixels.
+                      # Deprecated; the width is determined by the "style" field.
+                  "colorStyle": { # A color value. # The color of the border.
+                      # If color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "style": "A String", # The style of the border.
+                },
+                "left": { # A border along a cell. # The left border of the cell.
+                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "width": 42, # The width of the border, in pixels.
+                      # Deprecated; the width is determined by the "style" field.
+                  "colorStyle": { # A color value. # The color of the border.
+                      # If color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "style": "A String", # The style of the border.
+                },
+                "right": { # A border along a cell. # The right border of the cell.
+                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "width": 42, # The width of the border, in pixels.
+                      # Deprecated; the width is determined by the "style" field.
+                  "colorStyle": { # A color value. # The color of the border.
+                      # If color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "style": "A String", # The style of the border.
+                },
+                "bottom": { # A border along a cell. # The bottom border of the cell.
+                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "width": 42, # The width of the border, in pixels.
+                      # Deprecated; the width is determined by the "style" field.
+                  "colorStyle": { # A color value. # The color of the border.
+                      # If color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "style": "A String", # The style of the border.
+                },
+              },
+              "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                "angle": 42, # The angle between the standard orientation and the desired orientation.
+                    # Measured in degrees. Valid values are between -90 and 90. Positive
+                    # angles are angled upwards, negative are angled downwards.
+                    #
+                    # Note: For LTR text direction positive angles are in the
+                    # counterclockwise direction, whereas for RTL they are in the clockwise
+                    # direction
+                "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                    # characters is unchanged.
+                    # For example:
+                    #
+                    #     | V |
+                    #     | e |
+                    #     | r |
+                    #     | t |
+                    #     | i |
+                    #     | c |
+                    #     | a |
+                    #     | l |
+              },
+              "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
+              "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
+                  # Absent values indicate that the field isn't specified.
+                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "bold": True or False, # True if the text is bold.
+                "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                    # If foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "strikethrough": True or False, # True if the text has a strikethrough.
+                "fontFamily": "A String", # The font family.
+                "fontSize": 42, # The size of the font.
+                "italic": True or False, # True if the text is italicized.
+                "underline": True or False, # True if the text is underlined.
+              },
+              "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+            },
+          },
+          "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule.
+              # the interpolation points listed. The format of a cell will vary
+              # based on its contents as compared to the values of the interpolation
+              # points.
+            "maxpoint": { # A single interpolation point on a gradient conditional format. # The final interpolation point.
+                # These pin the gradient color scale according to the color,
+                # type and value chosen.
+              "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "colorStyle": { # A color value. # The color this interpolation point should use.
+                  # If color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "type": "A String", # How the value should be interpreted.
+              "value": "A String", # The value this interpolation point uses.  May be a formula.
+                  # Unused if type is MIN or
+                  # MAX.
+            },
+            "midpoint": { # A single interpolation point on a gradient conditional format. # An optional midway interpolation point.
+                # These pin the gradient color scale according to the color,
+                # type and value chosen.
+              "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "colorStyle": { # A color value. # The color this interpolation point should use.
+                  # If color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "type": "A String", # How the value should be interpreted.
+              "value": "A String", # The value this interpolation point uses.  May be a formula.
+                  # Unused if type is MIN or
+                  # MAX.
+            },
+            "minpoint": { # A single interpolation point on a gradient conditional format. # The starting interpolation point.
+                # These pin the gradient color scale according to the color,
+                # type and value chosen.
+              "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "colorStyle": { # A color value. # The color this interpolation point should use.
+                  # If color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "type": "A String", # How the value should be interpreted.
+              "value": "A String", # The value this interpolation point uses.  May be a formula.
+                  # Unused if type is MIN or
+                  # MAX.
+            },
+          },
+        },
+      ],
+      "charts": [ # The specifications of every chart on this sheet.
+        { # A chart embedded in a sheet.
+          "chartId": 42, # The ID of the chart.
+          "position": { # The position of an embedded object such as a chart. # The position of the chart.
+            "newSheet": True or False, # If true, the embedded object is put on a new sheet whose ID
+                # is chosen for you. Used only when writing.
+            "sheetId": 42, # The sheet this is on. Set only if the embedded object
+                # is on its own sheet. Must be non-negative.
+            "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid.
+              "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to.
+                  # All indexes are zero-based.
+                "rowIndex": 42, # The row index of the coordinate.
+                "columnIndex": 42, # The column index of the coordinate.
+                "sheetId": 42, # The sheet this coordinate is on.
+              },
+              "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
+                  # from the anchor cell.
+              "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
+              "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
+                  # from the anchor cell.
+              "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
+            },
+          },
+          "spec": { # The specifications of a chart. # The specification of the chart.
+            "fontName": "A String", # The name of the font to use by default for all chart text (e.g. title,
+                # axis labels, legend).  If a font is specified for a specific part of the
+                # chart it will override this font name.
+            "altText": "A String", # The alternative text that describes the chart.  This is often used
+                # for accessibility.
+            "subtitle": "A String", # The subtitle of the chart.
+            "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the entire chart.
+                # Not applicable to Org charts.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
             },
             "title": "A String", # The title of the chart.
             "titleTextFormat": { # The format of a run of text in a cell. # The title text format.
@@ -50487,14 +105037,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -50524,11 +105074,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -50552,20 +105102,158 @@
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
               "bold": True or False, # True if the text is bold.
+              "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                  # If foreground_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
               "strikethrough": True or False, # True if the text has a strikethrough.
               "fontFamily": "A String", # The font family.
               "fontSize": 42, # The size of the font.
               "italic": True or False, # True if the text is italicized.
               "underline": True or False, # True if the text is underlined.
             },
-            "treemapChart": { # A <a href="/chart/interactive/docs/gallery/treemap">Treemap chart</a>. # A treemap chart specification.
+            "treemapChart": { # A &lt;a href="/chart/interactive/docs/gallery/treemap"&gt;Treemap chart&lt;/a&gt;. # A treemap chart specification.
               "parentLabels": { # The data included in a domain or series. # The data the contains the treemap cells' parent labels.
                 "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                   "sources": [ # The ranges of data for a series or domain.
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -50617,66 +105305,139 @@
                   ],
                 },
               },
-              "sizeData": { # The data included in a domain or series. # The data that determines the size of each treemap data cell. This data is
-                  # expected to be numeric. The cells corresponding to non-numeric or missing
-                  # data will not be rendered. If color_data is not specified, this data
-                  # is used to determine data cell background colors as well.
-                "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
-                  "sources": [ # The ranges of data for a series or domain.
-                      # Exactly one dimension must have a length of 1,
-                      # and all sources in the list must have the same dimension
-                      # with length 1.
-                      # The domain (if it exists) & all series must have the same number
-                      # of source ranges. If using more than one source range, then the source
-                      # range at a given offset must be in order and contiguous across the domain
-                      # and series.
-                      #
-                      # For example, these are valid configurations:
-                      #
-                      #     domain sources: A1:A5
-                      #     series1 sources: B1:B5
-                      #     series2 sources: D6:D10
-                      #
-                      #     domain sources: A1:A5, C10:C12
-                      #     series1 sources: B1:B5, D10:D12
-                      #     series2 sources: C1:C5, E10:E12
-                    { # A range on a sheet.
-                        # All indexes are zero-based.
-                        # Indexes are half open, e.g the start index is inclusive
-                        # and the end index is exclusive -- [start_index, end_index).
-                        # Missing indexes indicate the range is unbounded on that side.
-                        #
-                        # For example, if `"Sheet1"` is sheet ID 0, then:
-                        #
-                        #   `Sheet1!A1:A1 == sheet_id: 0,
-                        #                   start_row_index: 0, end_row_index: 1,
-                        #                   start_column_index: 0, end_column_index: 1`
-                        #
-                        #   `Sheet1!A3:B4 == sheet_id: 0,
-                        #                   start_row_index: 2, end_row_index: 4,
-                        #                   start_column_index: 0, end_column_index: 2`
-                        #
-                        #   `Sheet1!A:B == sheet_id: 0,
-                        #                 start_column_index: 0, end_column_index: 2`
-                        #
-                        #   `Sheet1!A5:B == sheet_id: 0,
-                        #                  start_row_index: 4,
-                        #                  start_column_index: 0, end_column_index: 2`
-                        #
-                        #   `Sheet1 == sheet_id:0`
-                        #
-                        # The start index must always be less than or equal to the end index.
-                        # If the start index equals the end index, then the range is empty.
-                        # Empty ranges are typically not meaningful and are usually rendered in the
-                        # UI as `#REF!`.
-                      "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-                      "sheetId": 42, # The sheet this range is on.
-                      "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-                    },
-                  ],
-                },
+              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for header cells.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
               "hideTooltips": True or False, # True to hide tooltips.
               "colorScale": { # A color scale for a treemap chart. # The color scale for data cells in the treemap chart. Data cells are
@@ -50695,6 +105456,142 @@
                   # Cells with missing or non-numeric color values will have
                   # noDataColor as their background
                   # color.
+                "maxValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value greater than or equal
+                    # to maxValue. Defaults to #109618 if not
+                    # specified.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
                 "noDataColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells that have no color data associated with
                     # them. Defaults to #000000 if not specified.
                     # for simplicity of conversion to/from color representations in various
@@ -50766,14 +105663,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -50803,11 +105700,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -50830,6 +105727,562 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
+                "midValueColorStyle": { # A color value. # The background color for cells with a color value at the midpoint between
+                    # minValue and
+                    # maxValue. Defaults to #efe6dc if not
+                    # specified.
+                    # If mid_value_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "maxValueColorStyle": { # A color value. # The background color for cells with a color value greater than or equal
+                    # to maxValue. Defaults to #109618 if not
+                    # specified.
+                    # If max_value_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "minValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value less than or equal to
+                    # minValue. Defaults to #dc3912 if not
+                    # specified.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "noDataColorStyle": { # A color value. # The background color for cells that have no color data associated with
+                    # them. Defaults to #000000 if not specified.
+                    # If no_data_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "midValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value at the midpoint between
                     # minValue and
                     # maxValue. Defaults to #efe6dc if not
@@ -50903,14 +106356,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -50940,11 +106393,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -50967,277 +106420,145 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
-                "minValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value less than or equal to
+                "minValueColorStyle": { # A color value. # The background color for cells with a color value less than or equal to
                     # minValue. Defaults to #dc3912 if not
                     # specified.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
+                    # If min_value_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
                       #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
                       #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                },
-                "maxValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value greater than or equal
-                    # to maxValue. Defaults to #109618 if not
-                    # specified.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
+                      # Example (Java):
                       #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #      import com.google.type.Color;
                       #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
                 },
               },
               "labels": { # The data included in a domain or series. # The data that contains the treemap cell labels.
@@ -51246,7 +106567,7 @@
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -51308,7 +106629,7 @@
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -51364,147 +106685,74 @@
                   # have the same color as cells with this value. If not specified, defaults
                   # to the actual maximum value from color_data, or the maximum value from
                   # size_data if color_data is not specified.
+              "levels": 42, # The number of data levels to show on the treemap chart. These levels are
+                  # interactive and are shown with their labels. Defaults to 2 if not
+                  # specified.
               "minValue": 3.14, # The minimum possible data value. Cells with values less than this will
                   # have the same color as cells with this value. If not specified, defaults
                   # to the actual minimum value from color_data, or the minimum value from
                   # size_data if color_data is not specified.
-              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for header cells.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
-                    #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                    #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              "sizeData": { # The data included in a domain or series. # The data that determines the size of each treemap data cell. This data is
+                  # expected to be numeric. The cells corresponding to non-numeric or missing
+                  # data will not be rendered. If color_data is not specified, this data
+                  # is used to determine data cell background colors as well.
+                "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                  "sources": [ # The ranges of data for a series or domain.
+                      # Exactly one dimension must have a length of 1,
+                      # and all sources in the list must have the same dimension
+                      # with length 1.
+                      # The domain (if it exists) &amp; all series must have the same number
+                      # of source ranges. If using more than one source range, then the source
+                      # range at a given offset must be in order and contiguous across the domain
+                      # and series.
+                      #
+                      # For example, these are valid configurations:
+                      #
+                      #     domain sources: A1:A5
+                      #     series1 sources: B1:B5
+                      #     series2 sources: D6:D10
+                      #
+                      #     domain sources: A1:A5, C10:C12
+                      #     series1 sources: B1:B5, D10:D12
+                      #     series2 sources: C1:C5, E10:E12
+                    { # A range on a sheet.
+                        # All indexes are zero-based.
+                        # Indexes are half open, e.g the start index is inclusive
+                        # and the end index is exclusive -- [start_index, end_index).
+                        # Missing indexes indicate the range is unbounded on that side.
+                        #
+                        # For example, if `"Sheet1"` is sheet ID 0, then:
+                        #
+                        #   `Sheet1!A1:A1 == sheet_id: 0,
+                        #                   start_row_index: 0, end_row_index: 1,
+                        #                   start_column_index: 0, end_column_index: 1`
+                        #
+                        #   `Sheet1!A3:B4 == sheet_id: 0,
+                        #                   start_row_index: 2, end_row_index: 4,
+                        #                   start_column_index: 0, end_column_index: 2`
+                        #
+                        #   `Sheet1!A:B == sheet_id: 0,
+                        #                 start_column_index: 0, end_column_index: 2`
+                        #
+                        #   `Sheet1!A5:B == sheet_id: 0,
+                        #                  start_row_index: 4,
+                        #                  start_column_index: 0, end_column_index: 2`
+                        #
+                        #   `Sheet1 == sheet_id:0`
+                        #
+                        # The start index must always be less than or equal to the end index.
+                        # If the start index equals the end index, then the range is empty.
+                        # Empty ranges are typically not meaningful and are usually rendered in the
+                        # UI as `#REF!`.
+                      "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                      "sheetId": 42, # The sheet this range is on.
+                      "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                    },
+                  ],
+                },
               },
-              "levels": 42, # The number of data levels to show on the treemap chart. These levels are
-                  # interactive and are shown with their labels. Defaults to 2 if not
-                  # specified.
               "hintedLevels": 42, # The number of additional data levels beyond the labeled levels to be shown
                   # on the treemap chart. These levels are not interactive and are shown
                   # without their labels. Defaults to 0 if not specified.
@@ -51580,14 +106828,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -51617,11 +106865,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -51645,26 +106893,1706 @@
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
                 "bold": True or False, # True if the text is bold.
+                "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                    # If foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "strikethrough": True or False, # True if the text has a strikethrough.
                 "fontFamily": "A String", # The font family.
                 "fontSize": 42, # The size of the font.
                 "italic": True or False, # True if the text is italicized.
                 "underline": True or False, # True if the text is underlined.
               },
+              "headerColorStyle": { # A color value. # The background color for header cells.
+                  # If header_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+            },
+            "scorecardChart": { # A scorecard chart. Scorecard charts are used to highlight key performance # A scorecard chart specification.
+                # indicators, known as KPIs, on the spreadsheet. A scorecard chart can
+                # represent things like total sales, average cost, or a top selling item. You
+                # can specify a single data value, or aggregate over a range of data.
+                # Percentage or absolute difference from a baseline value can be highlighted,
+                # like changes over time.
+              "numberFormatSource": "A String", # The number format source used in the scorecard chart.
+                  # This field is optional.
+              "customFormatOptions": { # Custom number formatting options for chart attributes. # Custom formatting options for numeric key/baseline values in scorecard
+                  # chart. This field is used only when number_format_source is set to
+                  # CUSTOM. This field is optional.
+                "prefix": "A String", # Custom prefix to be prepended to the chart attribute.
+                    # This field is optional.
+                "suffix": "A String", # Custom suffix to be appended to the chart attribute.
+                    # This field is optional.
+              },
+              "keyValueFormat": { # Formatting options for key value. # Formatting options for key value.
+                "position": { # Position settings for text. # Specifies the horizontal text positioning of key value.
+                    # This field is optional. If not specified, default positioning is used.
+                  "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
+                },
+                "textFormat": { # The format of a run of text in a cell. # Text formatting options for key value.
+                    # Absent values indicate that the field isn't specified.
+                  "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "strikethrough": True or False, # True if the text has a strikethrough.
+                  "fontFamily": "A String", # The font family.
+                  "fontSize": 42, # The size of the font.
+                  "italic": True or False, # True if the text is italicized.
+                  "underline": True or False, # True if the text is underlined.
+                },
+              },
+              "aggregateType": "A String", # The aggregation type for key and baseline chart data in scorecard chart.
+                  # This field is optional.
+              "baselineValueFormat": { # Formatting options for baseline value. # Formatting options for baseline value.
+                  # This field is needed only if baseline_value_data is specified.
+                "description": "A String", # Description which is appended after the baseline value.
+                    # This field is optional.
+                "negativeColor": { # Represents a color in the RGBA color space. This representation is designed # Color to be used, in case baseline value represents a negative change for
+                    # key value. This field is optional.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "comparisonType": "A String", # The comparison type of key value with baseline value.
+                "positiveColorStyle": { # A color value. # Color to be used, in case baseline value represents a positive change for
+                    # key value. This field is optional.
+                    # If positive_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "negativeColorStyle": { # A color value. # Color to be used, in case baseline value represents a negative change for
+                    # key value. This field is optional.
+                    # If negative_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "position": { # Position settings for text. # Specifies the horizontal text positioning of baseline value.
+                    # This field is optional. If not specified, default positioning is used.
+                  "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
+                },
+                "textFormat": { # The format of a run of text in a cell. # Text formatting options for baseline value.
+                    # Absent values indicate that the field isn't specified.
+                  "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "strikethrough": True or False, # True if the text has a strikethrough.
+                  "fontFamily": "A String", # The font family.
+                  "fontSize": 42, # The size of the font.
+                  "italic": True or False, # True if the text is italicized.
+                  "underline": True or False, # True if the text is underlined.
+                },
+                "positiveColor": { # Represents a color in the RGBA color space. This representation is designed # Color to be used, in case baseline value represents a positive change for
+                    # key value. This field is optional.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "keyValueData": { # The data included in a domain or series. # The data for scorecard key value.
+                "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                  "sources": [ # The ranges of data for a series or domain.
+                      # Exactly one dimension must have a length of 1,
+                      # and all sources in the list must have the same dimension
+                      # with length 1.
+                      # The domain (if it exists) &amp; all series must have the same number
+                      # of source ranges. If using more than one source range, then the source
+                      # range at a given offset must be in order and contiguous across the domain
+                      # and series.
+                      #
+                      # For example, these are valid configurations:
+                      #
+                      #     domain sources: A1:A5
+                      #     series1 sources: B1:B5
+                      #     series2 sources: D6:D10
+                      #
+                      #     domain sources: A1:A5, C10:C12
+                      #     series1 sources: B1:B5, D10:D12
+                      #     series2 sources: C1:C5, E10:E12
+                    { # A range on a sheet.
+                        # All indexes are zero-based.
+                        # Indexes are half open, e.g the start index is inclusive
+                        # and the end index is exclusive -- [start_index, end_index).
+                        # Missing indexes indicate the range is unbounded on that side.
+                        #
+                        # For example, if `"Sheet1"` is sheet ID 0, then:
+                        #
+                        #   `Sheet1!A1:A1 == sheet_id: 0,
+                        #                   start_row_index: 0, end_row_index: 1,
+                        #                   start_column_index: 0, end_column_index: 1`
+                        #
+                        #   `Sheet1!A3:B4 == sheet_id: 0,
+                        #                   start_row_index: 2, end_row_index: 4,
+                        #                   start_column_index: 0, end_column_index: 2`
+                        #
+                        #   `Sheet1!A:B == sheet_id: 0,
+                        #                 start_column_index: 0, end_column_index: 2`
+                        #
+                        #   `Sheet1!A5:B == sheet_id: 0,
+                        #                  start_row_index: 4,
+                        #                  start_column_index: 0, end_column_index: 2`
+                        #
+                        #   `Sheet1 == sheet_id:0`
+                        #
+                        # The start index must always be less than or equal to the end index.
+                        # If the start index equals the end index, then the range is empty.
+                        # Empty ranges are typically not meaningful and are usually rendered in the
+                        # UI as `#REF!`.
+                      "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                      "sheetId": 42, # The sheet this range is on.
+                      "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                    },
+                  ],
+                },
+              },
+              "scaleFactor": 3.14, # Value to scale scorecard key and baseline value. For example, a factor of
+                  # 10 can be used to divide all values in the chart by 10.
+                  # This field is optional.
+              "baselineValueData": { # The data included in a domain or series. # The data for scorecard baseline value.
+                  # This field is optional.
+                "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                  "sources": [ # The ranges of data for a series or domain.
+                      # Exactly one dimension must have a length of 1,
+                      # and all sources in the list must have the same dimension
+                      # with length 1.
+                      # The domain (if it exists) &amp; all series must have the same number
+                      # of source ranges. If using more than one source range, then the source
+                      # range at a given offset must be in order and contiguous across the domain
+                      # and series.
+                      #
+                      # For example, these are valid configurations:
+                      #
+                      #     domain sources: A1:A5
+                      #     series1 sources: B1:B5
+                      #     series2 sources: D6:D10
+                      #
+                      #     domain sources: A1:A5, C10:C12
+                      #     series1 sources: B1:B5, D10:D12
+                      #     series2 sources: C1:C5, E10:E12
+                    { # A range on a sheet.
+                        # All indexes are zero-based.
+                        # Indexes are half open, e.g the start index is inclusive
+                        # and the end index is exclusive -- [start_index, end_index).
+                        # Missing indexes indicate the range is unbounded on that side.
+                        #
+                        # For example, if `"Sheet1"` is sheet ID 0, then:
+                        #
+                        #   `Sheet1!A1:A1 == sheet_id: 0,
+                        #                   start_row_index: 0, end_row_index: 1,
+                        #                   start_column_index: 0, end_column_index: 1`
+                        #
+                        #   `Sheet1!A3:B4 == sheet_id: 0,
+                        #                   start_row_index: 2, end_row_index: 4,
+                        #                   start_column_index: 0, end_column_index: 2`
+                        #
+                        #   `Sheet1!A:B == sheet_id: 0,
+                        #                 start_column_index: 0, end_column_index: 2`
+                        #
+                        #   `Sheet1!A5:B == sheet_id: 0,
+                        #                  start_row_index: 4,
+                        #                  start_column_index: 0, end_column_index: 2`
+                        #
+                        #   `Sheet1 == sheet_id:0`
+                        #
+                        # The start index must always be less than or equal to the end index.
+                        # If the start index equals the end index, then the range is empty.
+                        # Empty ranges are typically not meaningful and are usually rendered in the
+                        # UI as `#REF!`.
+                      "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                      "sheetId": 42, # The sheet this range is on.
+                      "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                    },
+                  ],
+                },
+              },
             },
             "titleTextPosition": { # Position settings for text. # The title text position.
                 # This field is optional.
               "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
             },
+            "backgroundColorStyle": { # A color value. # The background color of the entire chart.
+                # Not applicable to Org charts.
+                # If background_color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
             "hiddenDimensionStrategy": "A String", # Determines how the charts will use hidden rows or columns.
-            "pieChart": { # A <a href="/chart/interactive/docs/gallery/piechart">pie chart</a>. # A pie chart specification.
+            "pieChart": { # A &lt;a href="/chart/interactive/docs/gallery/piechart"&gt;pie chart&lt;/a&gt;. # A pie chart specification.
               "series": { # The data included in a domain or series. # The data that covers the one and only series of the pie chart.
                 "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                   "sources": [ # The ranges of data for a series or domain.
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -51722,7 +108650,7 @@
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -51778,8 +108706,8 @@
               "legendPosition": "A String", # Where the legend of the pie chart should be drawn.
               "pieHole": 3.14, # The size of the hole in the pie chart.
             },
-            "candlestickChart": { # A <a href="/chart/interactive/docs/gallery/candlestickchart">candlestick # A candlestick chart specification.
-                # chart</a>.
+            "candlestickChart": { # A &lt;a href="/chart/interactive/docs/gallery/candlestickchart"&gt;candlestick # A candlestick chart specification.
+                # chart&lt;/a&gt;.
               "domain": { # The domain of a CandlestickChart. # The domain data (horizontal axis) for the candlestick chart.  String data
                   # will be treated as discrete labels, other data will be treated as
                   # continuous values.
@@ -51790,7 +108718,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -51855,7 +108783,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -51916,7 +108844,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -51978,7 +108906,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -52040,7 +108968,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -52100,140 +109028,287 @@
                 # This field is optional.
               "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
             },
-            "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the entire chart.
-                # Not applicable to Org charts.
-                # for simplicity of conversion to/from color representations in various
-                # languages over compactness; for example, the fields of this representation
-                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                # method in iOS; and, with just a little work, it can be easily formatted into
-                # a CSS "rgba()" string in JavaScript, as well.
-                #
-                # Note: this proto does not carry information about the absolute color space
-                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                # space.
-                #
-                # Example (Java):
-                #
-                #      import com.google.type.Color;
-                #
-                #      // ...
-                #      public static java.awt.Color fromProto(Color protocolor) {
-                #        float alpha = protocolor.hasAlpha()
-                #            ? protocolor.getAlpha().getValue()
-                #            : 1.0;
-                #
-                #        return new java.awt.Color(
-                #            protocolor.getRed(),
-                #            protocolor.getGreen(),
-                #            protocolor.getBlue(),
-                #            alpha);
-                #      }
-                #
-                #      public static Color toProto(java.awt.Color color) {
-                #        float red = (float) color.getRed();
-                #        float green = (float) color.getGreen();
-                #        float blue = (float) color.getBlue();
-                #        float denominator = 255.0;
-                #        Color.Builder resultBuilder =
-                #            Color
-                #                .newBuilder()
-                #                .setRed(red / denominator)
-                #                .setGreen(green / denominator)
-                #                .setBlue(blue / denominator);
-                #        int alpha = color.getAlpha();
-                #        if (alpha != 255) {
-                #          result.setAlpha(
-                #              FloatValue
-                #                  .newBuilder()
-                #                  .setValue(((float) alpha) / denominator)
-                #                  .build());
-                #        }
-                #        return resultBuilder.build();
-                #      }
-                #      // ...
-                #
-                # Example (iOS / Obj-C):
-                #
-                #      // ...
-                #      static UIColor* fromProto(Color* protocolor) {
-                #         float red = [protocolor red];
-                #         float green = [protocolor green];
-                #         float blue = [protocolor blue];
-                #         FloatValue* alpha_wrapper = [protocolor alpha];
-                #         float alpha = 1.0;
-                #         if (alpha_wrapper != nil) {
-                #           alpha = [alpha_wrapper value];
-                #         }
-                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                #      }
-                #
-                #      static Color* toProto(UIColor* color) {
-                #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                #            return nil;
-                #          }
-                #          Color* result = [[Color alloc] init];
-                #          [result setRed:red];
-                #          [result setGreen:green];
-                #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
-                #            [result setAlpha:floatWrapperWithValue(alpha)];
-                #          }
-                #          [result autorelease];
-                #          return result;
-                #     }
-                #     // ...
-                #
-                #  Example (JavaScript):
-                #
-                #     // ...
-                #
-                #     var protoToCssColor = function(rgb_color) {
-                #        var redFrac = rgb_color.red || 0.0;
-                #        var greenFrac = rgb_color.green || 0.0;
-                #        var blueFrac = rgb_color.blue || 0.0;
-                #        var red = Math.floor(redFrac * 255);
-                #        var green = Math.floor(greenFrac * 255);
-                #        var blue = Math.floor(blueFrac * 255);
-                #
-                #        if (!('alpha' in rgb_color)) {
-                #           return rgbToCssColor_(red, green, blue);
-                #        }
-                #
-                #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                #        var rgbParams = [red, green, blue].join(',');
-                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                #     };
-                #
-                #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                #       var hexString = rgbNumber.toString(16);
-                #       var missingZeros = 6 - hexString.length;
-                #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
-                #          resultBuilder.push('0');
-                #       }
-                #       resultBuilder.push(hexString);
-                #       return resultBuilder.join('');
-                #     };
-                #
-                #     // ...
-              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                  # the final pixel color is defined by the equation:
+            "subtitleTextFormat": { # The format of a run of text in a cell. # The subtitle text format.
+                # Strikethrough and underline are not supported.
+                # Absent values indicate that the field isn't specified.
+              "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
                   #
-                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
                   #
-                  # This means that a value of 1.0 corresponds to a solid color, whereas
-                  # a value of 0.0 corresponds to a completely transparent color. This
-                  # uses a wrapper message rather than a simple float scalar so that it is
-                  # possible to distinguish between a default value and the value being unset.
-                  # If omitted, this color object is to be rendered as a solid color
-                  # (as if the alpha value had been explicitly given with a value of 1.0).
-              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "bold": True or False, # True if the text is bold.
+              "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                  # If foreground_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "strikethrough": True or False, # True if the text has a strikethrough.
+              "fontFamily": "A String", # The font family.
+              "fontSize": 42, # The size of the font.
+              "italic": True or False, # True if the text is italicized.
+              "underline": True or False, # True if the text is underlined.
             },
             "maximized": True or False, # True to make a chart fill the entire space in which it's rendered with
                 # minimum padding.  False to use the default padding.
@@ -52249,7 +109324,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -52382,14 +109457,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -52419,11 +109494,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -52446,6 +109521,144 @@
                       "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                       "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                     },
+                    "colorStyle": { # A color value. # The color of the column.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
                     "label": "A String", # The label of the column's legend.
                   },
                   "subtotalColumnsStyle": { # Styles for a waterfall chart column. # Styles for all subtotal columns in this series.
@@ -52519,14 +109732,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -52556,11 +109769,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -52583,6 +109796,144 @@
                       "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                       "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                     },
+                    "colorStyle": { # A color value. # The color of the column.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
                     "label": "A String", # The label of the column's legend.
                   },
                   "negativeColumnsStyle": { # Styles for a waterfall chart column. # Styles for all columns in this series with negative values.
@@ -52656,14 +110007,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -52693,11 +110044,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -52720,6 +110071,144 @@
                       "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                       "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                     },
+                    "colorStyle": { # A color value. # The color of the column.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
                     "label": "A String", # The label of the column's legend.
                   },
                   "customSubtotals": [ # Custom subtotal columns appearing in this series. The order in which
@@ -52745,7 +110234,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -52807,6 +110296,8 @@
                 # of charts this supports.
               "stackedType": "A String", # The stacked type for charts that support vertical stacking.
                   # Applies to Area, Bar, Column, Combo, and Stepped Area charts.
+              "compareMode": "A String", # The behavior of tooltips and data highlighting when hovering on data and
+                  # chart area.
               "headerCount": 42, # The number of rows or columns in the data that are "headers".
                   # If not set, Google Sheets will guess how many rows are headers based
                   # on the data.
@@ -52817,8 +110308,147 @@
                 { # A single series of data in a chart.
                     # For example, if charting stock prices over time, multiple series may exist,
                     # one for the "Open Price", "High Price", "Low Price" and "Close Price".
-                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color for elements (i.e. bars, lines, points) associated with this
-                      # series.  If empty, a default color is used.
+                  "colorStyle": { # A color value. # The color for elements (such as bars, lines, and points) associated with
+                      # this series.  If empty, a default color is used.
+                      # If color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "color": { # Represents a color in the RGBA color space. This representation is designed # The color for elements (such as bars, lines, and points) associated with
+                      # this series.  If empty, a default color is used.
                       # for simplicity of conversion to/from color representations in various
                       # languages over compactness; for example, the fields of this representation
                       # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -52888,14 +110518,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -52925,11 +110555,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -52958,7 +110588,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -53017,6 +110647,12 @@
                       # prices.
                       # It is an error to specify an axis that isn't a valid minor axis
                       # for the chart's type.
+                  "type": "A String", # The type of this series. Valid only if the
+                      # chartType is
+                      # COMBO.
+                      # Different types will change the way the series is visualized.
+                      # Only LINE, AREA,
+                      # and COLUMN are supported.
                   "lineStyle": { # Properties that describe the style of a line. # The line style of this series. Valid only if the
                       # chartType is AREA,
                       # LINE, or SCATTER.
@@ -53026,12 +110662,6 @@
                     "width": 42, # The thickness of the line, in px.
                     "type": "A String", # The dash type of the line.
                   },
-                  "type": "A String", # The type of this series. Valid only if the
-                      # chartType is
-                      # COMBO.
-                      # Different types will change the way the series is visualized.
-                      # Only LINE, AREA,
-                      # and COLUMN are supported.
                 },
               ],
               "interpolateNulls": True or False, # If some values in a series are missing, gaps may appear in the chart (e.g,
@@ -53041,8 +110671,8 @@
               "legendPosition": "A String", # The position of the chart legend.
               "lineSmoothing": True or False, # Gets whether all lines should be rendered smooth or straight by default.
                   # Applies to Line charts.
-              "compareMode": "A String", # The behavior of tooltips and data highlighting when hovering on data and
-                  # chart area.
+              "threeDimensional": True or False, # True to make the chart 3D.
+                  # Applies to Bar and Column charts.
               "domains": [ # The domain of data this is charting.
                   # Only a single domain is supported.
                 { # The domain of a chart.
@@ -53055,7 +110685,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -53110,13 +110740,10 @@
                 },
               ],
               "chartType": "A String", # The type of the chart.
-              "threeDimensional": True or False, # True to make the chart 3D.
-                  # Applies to Bar and Column charts.
               "axis": [ # The axis on the chart.
                 { # An axis of the chart.
                     # A chart may not have more than one axis per
                     # axis position.
-                  "position": "A String", # The position of this axis.
                   "format": { # The format of a run of text in a cell. # The format of the title.
                       # Only valid if the axis is not associated with the domain.
                       # Absent values indicate that the field isn't specified.
@@ -53190,14 +110817,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -53227,11 +110854,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -53255,21 +110882,168 @@
                       "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                     },
                     "bold": True or False, # True if the text is bold.
+                    "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                        # If foreground_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
                     "strikethrough": True or False, # True if the text has a strikethrough.
                     "fontFamily": "A String", # The font family.
                     "fontSize": 42, # The size of the font.
                     "italic": True or False, # True if the text is italicized.
                     "underline": True or False, # True if the text is underlined.
                   },
-                  "title": "A String", # The title of this axis. If set, this overrides any title inferred
-                      # from headers of the data.
+                  "position": "A String", # The position of this axis.
+                  "viewWindowOptions": { # The options that define a "view window" for a chart (such as the visible # The view window options for this axis.
+                      # values in an axis).
+                    "viewWindowMin": 3.14, # The minimum numeric value to be shown in this view window. If unset, will
+                        # automatically determine a minimum value that looks good for the data.
+                    "viewWindowMax": 3.14, # The maximum numeric value to be shown in this view window. If unset, will
+                        # automatically determine a maximum value that looks good for the data.
+                    "viewWindowMode": "A String", # The view window's mode.
+                  },
                   "titleTextPosition": { # Position settings for text. # The axis title text position.
                     "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
                   },
+                  "title": "A String", # The title of this axis. If set, this overrides any title inferred
+                      # from headers of the data.
                 },
               ],
             },
-            "histogramChart": { # A <a href="/chart/interactive/docs/gallery/histogram">histogram chart</a>. # A histogram chart specification.
+            "histogramChart": { # A &lt;a href="/chart/interactive/docs/gallery/histogram"&gt;histogram chart&lt;/a&gt;. # A histogram chart specification.
                 # A histogram chart groups data items into bins, displaying each bin as a
                 # column of stacked items.  Histograms are used to display the distribution
                 # of a dataset.  Each column of items represents a range into which those
@@ -53356,14 +111130,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -53393,11 +111167,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -53420,13 +111194,152 @@
                     "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
+                  "barColorStyle": { # A color value. # The color of the column representing this series in each bucket.
+                      # This field is optional.
+                      # If bar_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "data": { # The data included in a domain or series. # The data for this histogram series.
                     "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                       "sources": [ # The ranges of data for a series or domain.
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -53489,141 +111402,9 @@
                   # Cannot be negative.
                   # This field is optional.
             },
-            "bubbleChart": { # A <a href="/chart/interactive/docs/gallery/bubblechart">bubble chart</a>. # A bubble chart specification.
-              "bubbleBorderColor": { # Represents a color in the RGBA color space. This representation is designed # The bubble border color.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
-                    #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                    #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-              },
+            "bubbleChart": { # A &lt;a href="/chart/interactive/docs/gallery/bubblechart"&gt;bubble chart&lt;/a&gt;. # A bubble chart specification.
+              "bubbleOpacity": 3.14, # The opacity of the bubbles between 0 and 1.0.
+                  # 0 is fully transparent and 1 is fully opaque.
               "domain": { # The data included in a domain or series. # The data containing the bubble x-values.  These values locate the bubbles
                   # in the chart horizontally.
                 "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
@@ -53631,7 +111412,7 @@
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -53756,14 +111537,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -53793,11 +111574,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -53821,6 +111602,144 @@
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
                 "bold": True or False, # True if the text is bold.
+                "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                    # If foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "strikethrough": True or False, # True if the text has a strikethrough.
                 "fontFamily": "A String", # The font family.
                 "fontSize": 42, # The size of the font.
@@ -53834,7 +111753,7 @@
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -53886,11 +111805,281 @@
                   ],
                 },
               },
+              "bubbleBorderColorStyle": { # A color value. # The bubble border color.
+                  # If bubble_border_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
               "legendPosition": "A String", # Where the legend of the chart should be drawn.
               "bubbleMaxRadiusSize": 42, # The max radius size of the bubbles, in pixels.
                   # If specified, the field must be a positive value.
-              "bubbleOpacity": 3.14, # The opacity of the bubbles between 0 and 1.0.
-                  # 0 is fully transparent and 1 is fully opaque.
+              "bubbleBorderColor": { # Represents a color in the RGBA color space. This representation is designed # The bubble border color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
               "groupIds": { # The data included in a domain or series. # The data containing the bubble group IDs. All bubbles with the same group
                   # ID are drawn in the same color. If bubble_sizes is specified then
                   # this field must also be specified but may contain blank values.
@@ -53900,7 +112089,7 @@
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -53961,7 +112150,7 @@
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -54019,7 +112208,7 @@
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -54074,7 +112263,7 @@
               "bubbleMinRadiusSize": 42, # The minimum radius size of the bubbles, in pixels.
                   # If specific, the field must be a positive value.
             },
-            "orgChart": { # An <a href="/chart/interactive/docs/gallery/orgchart">org chart</a>. # An org chart specification.
+            "orgChart": { # An &lt;a href="/chart/interactive/docs/gallery/orgchart"&gt;org chart&lt;/a&gt;. # An org chart specification.
                 # Org charts require a unique set of labels in labels and may
                 # optionally include parent_labels and tooltips.
                 # parent_labels contain, for each node, the label identifying the parent
@@ -54093,7 +112282,7 @@
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -54154,7 +112343,7 @@
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -54276,14 +112465,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -54313,11 +112502,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -54347,7 +112536,7 @@
                       # Exactly one dimension must have a length of 1,
                       # and all sources in the list must have the same dimension
                       # with length 1.
-                      # The domain (if it exists) & all series must have the same number
+                      # The domain (if it exists) &amp; all series must have the same number
                       # of source ranges. If using more than one source range, then the source
                       # range at a given offset must be in order and contiguous across the domain
                       # and series.
@@ -54469,14 +112658,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -54506,11 +112695,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -54533,11 +112722,2986 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
+              "nodeColorStyle": { # A color value. # The color of the org chart nodes.
+                  # If node_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "selectedNodeColorStyle": { # A color value. # The color of the selected org chart nodes.
+                  # If selected_node_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
               "nodeSize": "A String", # The size of the org chart nodes.
             },
           },
         },
       ],
+      "filterViews": [ # The filter views in this sheet.
+        { # A filter view.
+          "title": "A String", # The name of the filter view.
+          "namedRangeId": "A String", # The named range this filter view is backed by, if any.
+              #
+              # When writing, only one of range or named_range_id
+              # may be set.
+          "filterViewId": 42, # The ID of the filter view.
+          "range": { # A range on a sheet. # The range this filter view covers.
+              #
+              # When writing, only one of range or named_range_id
+              # may be set.
+              # All indexes are zero-based.
+              # Indexes are half open, e.g the start index is inclusive
+              # and the end index is exclusive -- [start_index, end_index).
+              # Missing indexes indicate the range is unbounded on that side.
+              #
+              # For example, if `"Sheet1"` is sheet ID 0, then:
+              #
+              #   `Sheet1!A1:A1 == sheet_id: 0,
+              #                   start_row_index: 0, end_row_index: 1,
+              #                   start_column_index: 0, end_column_index: 1`
+              #
+              #   `Sheet1!A3:B4 == sheet_id: 0,
+              #                   start_row_index: 2, end_row_index: 4,
+              #                   start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1!A:B == sheet_id: 0,
+              #                 start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1!A5:B == sheet_id: 0,
+              #                  start_row_index: 4,
+              #                  start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1 == sheet_id:0`
+              #
+              # The start index must always be less than or equal to the end index.
+              # If the start index equals the end index, then the range is empty.
+              # Empty ranges are typically not meaningful and are usually rendered in the
+              # UI as `#REF!`.
+            "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "sheetId": 42, # The sheet this range is on.
+            "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+          },
+          "sortSpecs": [ # The sort order per column. Later specifications are used when values
+              # are equal in the earlier specifications.
+            { # A sort order associated with a specific column or row.
+              "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to sort by; cells with this foreground color are
+                  # sorted to the top. Mutually exclusive with background_color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to sort by; cells with this fill color are sorted
+                  # to the top. Mutually exclusive with foreground_color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "foregroundColorStyle": { # A color value. # The foreground color to sort by; cells with this foreground color are
+                  # sorted to the top. Mutually exclusive with background_color, and must
+                  # be an RGB-type color. If foreground_color is also set, this field takes
+                  # precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "backgroundColorStyle": { # A color value. # The background fill color to sort by; cells with this fill color are sorted
+                  # to the top. Mutually exclusive with foreground_color, and must be an
+                  # RGB-type color. If background_color is also set, this field takes
+                  # precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "sortOrder": "A String", # The order data should be sorted.
+              "dimensionIndex": 42, # The dimension the sort should be applied to.
+            },
+          ],
+          "criteria": { # The criteria for showing/hiding values per column.
+              # The map's key is the column index, and the value is the criteria for
+              # that column.
+            "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
+              "visibleBackgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to filter by; only cells with this fill color are
+                  # shown. Mutually exclusive with visible_foreground_color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "hiddenValues": [ # Values that should be hidden.
+                "A String",
+              ],
+              "visibleBackgroundColorStyle": { # A color value. # The background fill color to filter by; only cells with this fill color are
+                  # shown. This field is mutually exclusive with visible_foreground_color,
+                  # and must be set to an RGB-type color. If visible_background_color is
+                  # also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "visibleForegroundColorStyle": { # A color value. # The foreground color to filter by; only cells with this foreground color
+                  # are shown. This field is mutually exclusive with
+                  # visible_background_color, and must be set to an RGB-type color. If
+                  # visible_foreground_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "visibleForegroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to filter by; only cells with this foreground color
+                  # are shown. Mutually exclusive with visible_background_color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
+                  # (This does not override hidden_values -- if a value is listed there,
+                  #  it will still be hidden.)
+                  # BooleanConditions are used by conditional formatting,
+                  # data validation, and the criteria in filters.
+                "values": [ # The values of the condition. The number of supported values depends
+                    # on the condition type.  Some support zero values,
+                    # others one or two values,
+                    # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                  { # The value of the condition.
+                    "relativeDate": "A String", # A relative date (based on the current date).
+                        # Valid only if the type is
+                        # DATE_BEFORE,
+                        # DATE_AFTER,
+                        # DATE_ON_OR_BEFORE or
+                        # DATE_ON_OR_AFTER.
+                        #
+                        # Relative dates are not supported in data validation.
+                        # They are supported only in conditional formatting and
+                        # conditional filters.
+                    "userEnteredValue": "A String", # A value the condition is based on.
+                        # The value is parsed as if the user typed into a cell.
+                        # Formulas are supported (and must begin with an `=` or a '+').
+                  },
+                ],
+                "type": "A String", # The type of condition.
+              },
+            },
+          },
+        },
+      ],
+      "slicers": [ # The slicers on this sheet.
+        { # A slicer in a sheet.
+          "position": { # The position of an embedded object such as a chart. # The position of the slicer. Note that slicer can be positioned only on
+              # existing sheet. Also, width and height of slicer can be automatically
+              # adjusted to keep it within permitted limits.
+            "newSheet": True or False, # If true, the embedded object is put on a new sheet whose ID
+                # is chosen for you. Used only when writing.
+            "sheetId": 42, # The sheet this is on. Set only if the embedded object
+                # is on its own sheet. Must be non-negative.
+            "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid.
+              "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to.
+                  # All indexes are zero-based.
+                "rowIndex": 42, # The row index of the coordinate.
+                "columnIndex": 42, # The column index of the coordinate.
+                "sheetId": 42, # The sheet this coordinate is on.
+              },
+              "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
+                  # from the anchor cell.
+              "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
+              "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
+                  # from the anchor cell.
+              "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
+            },
+          },
+          "spec": { # The specifications of a slicer. # The specification of the slicer.
+            "backgroundColorStyle": { # A color value. # The background color of the slicer.
+                # If background_color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
+            "dataRange": { # A range on a sheet. # The data range of the slicer.
+                # All indexes are zero-based.
+                # Indexes are half open, e.g the start index is inclusive
+                # and the end index is exclusive -- [start_index, end_index).
+                # Missing indexes indicate the range is unbounded on that side.
+                #
+                # For example, if `"Sheet1"` is sheet ID 0, then:
+                #
+                #   `Sheet1!A1:A1 == sheet_id: 0,
+                #                   start_row_index: 0, end_row_index: 1,
+                #                   start_column_index: 0, end_column_index: 1`
+                #
+                #   `Sheet1!A3:B4 == sheet_id: 0,
+                #                   start_row_index: 2, end_row_index: 4,
+                #                   start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A:B == sheet_id: 0,
+                #                 start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A5:B == sheet_id: 0,
+                #                  start_row_index: 4,
+                #                  start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1 == sheet_id:0`
+                #
+                # The start index must always be less than or equal to the end index.
+                # If the start index equals the end index, then the range is empty.
+                # Empty ranges are typically not meaningful and are usually rendered in the
+                # UI as `#REF!`.
+              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "sheetId": 42, # The sheet this range is on.
+              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            },
+            "title": "A String", # The title of the slicer.
+            "applyToPivotTables": True or False, # True if the filter should apply to pivot tables.
+                # If not set, default to `True`.
+            "columnIndex": 42, # The column index in the data table on which the filter is applied to.
+            "horizontalAlignment": "A String", # The horizontal alignment of title in the slicer.
+                # If unspecified, defaults to `LEFT`
+            "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the slicer.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
+            "textFormat": { # The format of a run of text in a cell. # The text format of title in the slicer.
+                # Absent values indicate that the field isn't specified.
+              "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "bold": True or False, # True if the text is bold.
+              "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                  # If foreground_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "strikethrough": True or False, # True if the text has a strikethrough.
+              "fontFamily": "A String", # The font family.
+              "fontSize": 42, # The size of the font.
+              "italic": True or False, # True if the text is italicized.
+              "underline": True or False, # True if the text is underlined.
+            },
+            "filterCriteria": { # Criteria for showing/hiding rows in a filter or filter view. # The filtering criteria of the slicer.
+              "visibleBackgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to filter by; only cells with this fill color are
+                  # shown. Mutually exclusive with visible_foreground_color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "hiddenValues": [ # Values that should be hidden.
+                "A String",
+              ],
+              "visibleBackgroundColorStyle": { # A color value. # The background fill color to filter by; only cells with this fill color are
+                  # shown. This field is mutually exclusive with visible_foreground_color,
+                  # and must be set to an RGB-type color. If visible_background_color is
+                  # also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "visibleForegroundColorStyle": { # A color value. # The foreground color to filter by; only cells with this foreground color
+                  # are shown. This field is mutually exclusive with
+                  # visible_background_color, and must be set to an RGB-type color. If
+                  # visible_foreground_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "visibleForegroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to filter by; only cells with this foreground color
+                  # are shown. Mutually exclusive with visible_background_color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
+                  # (This does not override hidden_values -- if a value is listed there,
+                  #  it will still be hidden.)
+                  # BooleanConditions are used by conditional formatting,
+                  # data validation, and the criteria in filters.
+                "values": [ # The values of the condition. The number of supported values depends
+                    # on the condition type.  Some support zero values,
+                    # others one or two values,
+                    # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                  { # The value of the condition.
+                    "relativeDate": "A String", # A relative date (based on the current date).
+                        # Valid only if the type is
+                        # DATE_BEFORE,
+                        # DATE_AFTER,
+                        # DATE_ON_OR_BEFORE or
+                        # DATE_ON_OR_AFTER.
+                        #
+                        # Relative dates are not supported in data validation.
+                        # They are supported only in conditional formatting and
+                        # conditional filters.
+                    "userEnteredValue": "A String", # A value the condition is based on.
+                        # The value is parsed as if the user typed into a cell.
+                        # Formulas are supported (and must begin with an `=` or a '+').
+                  },
+                ],
+                "type": "A String", # The type of condition.
+              },
+            },
+          },
+          "slicerId": 42, # The ID of the slicer.
+        },
+      ],
+      "properties": { # Properties of a sheet. # The properties of the sheet.
+        "sheetType": "A String", # The type of sheet. Defaults to GRID.
+            # This field cannot be changed once set.
+        "index": 42, # The index of the sheet within the spreadsheet.
+            # When adding or updating sheet properties, if this field
+            # is excluded then the sheet is added or moved to the end
+            # of the sheet list. When updating sheet indices or inserting
+            # sheets, movement is considered in "before the move" indexes.
+            # For example, if there were 3 sheets (S1, S2, S3) in order to
+            # move S1 ahead of S2 the index would have to be set to 2. A sheet
+            # index update request is ignored if the requested index is
+            # identical to the sheets current index or if the requested new
+            # index is equal to the current sheet index + 1.
+        "title": "A String", # The name of the sheet.
+        "gridProperties": { # Properties of a grid. # Additional properties of the sheet if this sheet is a grid.
+            # (If the sheet is an object sheet, containing a chart or image, then
+            # this field will be absent.)
+            # When writing it is an error to set any grid properties on non-grid sheets.
+          "columnCount": 42, # The number of columns in the grid.
+          "rowGroupControlAfter": True or False, # True if the row grouping control toggle is shown after the group.
+          "columnGroupControlAfter": True or False, # True if the column grouping control toggle is shown after the group.
+          "frozenRowCount": 42, # The number of rows that are frozen in the grid.
+          "frozenColumnCount": 42, # The number of columns that are frozen in the grid.
+          "rowCount": 42, # The number of rows in the grid.
+          "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI.
+        },
+        "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet.
+        "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI.
+            # for simplicity of conversion to/from color representations in various
+            # languages over compactness; for example, the fields of this representation
+            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+            # method in iOS; and, with just a little work, it can be easily formatted into
+            # a CSS "rgba()" string in JavaScript, as well.
+            #
+            # Note: this proto does not carry information about the absolute color space
+            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+            # space.
+            #
+            # Example (Java):
+            #
+            #      import com.google.type.Color;
+            #
+            #      // ...
+            #      public static java.awt.Color fromProto(Color protocolor) {
+            #        float alpha = protocolor.hasAlpha()
+            #            ? protocolor.getAlpha().getValue()
+            #            : 1.0;
+            #
+            #        return new java.awt.Color(
+            #            protocolor.getRed(),
+            #            protocolor.getGreen(),
+            #            protocolor.getBlue(),
+            #            alpha);
+            #      }
+            #
+            #      public static Color toProto(java.awt.Color color) {
+            #        float red = (float) color.getRed();
+            #        float green = (float) color.getGreen();
+            #        float blue = (float) color.getBlue();
+            #        float denominator = 255.0;
+            #        Color.Builder resultBuilder =
+            #            Color
+            #                .newBuilder()
+            #                .setRed(red / denominator)
+            #                .setGreen(green / denominator)
+            #                .setBlue(blue / denominator);
+            #        int alpha = color.getAlpha();
+            #        if (alpha != 255) {
+            #          result.setAlpha(
+            #              FloatValue
+            #                  .newBuilder()
+            #                  .setValue(((float) alpha) / denominator)
+            #                  .build());
+            #        }
+            #        return resultBuilder.build();
+            #      }
+            #      // ...
+            #
+            # Example (iOS / Obj-C):
+            #
+            #      // ...
+            #      static UIColor* fromProto(Color* protocolor) {
+            #         float red = [protocolor red];
+            #         float green = [protocolor green];
+            #         float blue = [protocolor blue];
+            #         FloatValue* alpha_wrapper = [protocolor alpha];
+            #         float alpha = 1.0;
+            #         if (alpha_wrapper != nil) {
+            #           alpha = [alpha_wrapper value];
+            #         }
+            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+            #      }
+            #
+            #      static Color* toProto(UIColor* color) {
+            #          CGFloat red, green, blue, alpha;
+            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+            #            return nil;
+            #          }
+            #          Color* result = [[Color alloc] init];
+            #          [result setRed:red];
+            #          [result setGreen:green];
+            #          [result setBlue:blue];
+            #          if (alpha &lt;= 0.9999) {
+            #            [result setAlpha:floatWrapperWithValue(alpha)];
+            #          }
+            #          [result autorelease];
+            #          return result;
+            #     }
+            #     // ...
+            #
+            #  Example (JavaScript):
+            #
+            #     // ...
+            #
+            #     var protoToCssColor = function(rgb_color) {
+            #        var redFrac = rgb_color.red || 0.0;
+            #        var greenFrac = rgb_color.green || 0.0;
+            #        var blueFrac = rgb_color.blue || 0.0;
+            #        var red = Math.floor(redFrac * 255);
+            #        var green = Math.floor(greenFrac * 255);
+            #        var blue = Math.floor(blueFrac * 255);
+            #
+            #        if (!('alpha' in rgb_color)) {
+            #           return rgbToCssColor_(red, green, blue);
+            #        }
+            #
+            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+            #        var rgbParams = [red, green, blue].join(',');
+            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+            #     };
+            #
+            #     var rgbToCssColor_ = function(red, green, blue) {
+            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+            #       var hexString = rgbNumber.toString(16);
+            #       var missingZeros = 6 - hexString.length;
+            #       var resultBuilder = ['#'];
+            #       for (var i = 0; i &lt; missingZeros; i++) {
+            #          resultBuilder.push('0');
+            #       }
+            #       resultBuilder.push(hexString);
+            #       return resultBuilder.join('');
+            #     };
+            #
+            #     // ...
+          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+              # the final pixel color is defined by the equation:
+              #
+              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+              #
+              # This means that a value of 1.0 corresponds to a solid color, whereas
+              # a value of 0.0 corresponds to a completely transparent color. This
+              # uses a wrapper message rather than a simple float scalar so that it is
+              # possible to distinguish between a default value and the value being unset.
+              # If omitted, this color object is to be rendered as a solid color
+              # (as if the alpha value had been explicitly given with a value of 1.0).
+          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+        },
+        "hidden": True or False, # True if the sheet is hidden in the UI, false if it's visible.
+        "tabColorStyle": { # A color value. # The color of the tab in the UI.
+            # If tab_color is also set, this field takes precedence.
+          "themeColor": "A String", # Theme color.
+          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+              # for simplicity of conversion to/from color representations in various
+              # languages over compactness; for example, the fields of this representation
+              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+              # method in iOS; and, with just a little work, it can be easily formatted into
+              # a CSS "rgba()" string in JavaScript, as well.
+              #
+              # Note: this proto does not carry information about the absolute color space
+              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+              # space.
+              #
+              # Example (Java):
+              #
+              #      import com.google.type.Color;
+              #
+              #      // ...
+              #      public static java.awt.Color fromProto(Color protocolor) {
+              #        float alpha = protocolor.hasAlpha()
+              #            ? protocolor.getAlpha().getValue()
+              #            : 1.0;
+              #
+              #        return new java.awt.Color(
+              #            protocolor.getRed(),
+              #            protocolor.getGreen(),
+              #            protocolor.getBlue(),
+              #            alpha);
+              #      }
+              #
+              #      public static Color toProto(java.awt.Color color) {
+              #        float red = (float) color.getRed();
+              #        float green = (float) color.getGreen();
+              #        float blue = (float) color.getBlue();
+              #        float denominator = 255.0;
+              #        Color.Builder resultBuilder =
+              #            Color
+              #                .newBuilder()
+              #                .setRed(red / denominator)
+              #                .setGreen(green / denominator)
+              #                .setBlue(blue / denominator);
+              #        int alpha = color.getAlpha();
+              #        if (alpha != 255) {
+              #          result.setAlpha(
+              #              FloatValue
+              #                  .newBuilder()
+              #                  .setValue(((float) alpha) / denominator)
+              #                  .build());
+              #        }
+              #        return resultBuilder.build();
+              #      }
+              #      // ...
+              #
+              # Example (iOS / Obj-C):
+              #
+              #      // ...
+              #      static UIColor* fromProto(Color* protocolor) {
+              #         float red = [protocolor red];
+              #         float green = [protocolor green];
+              #         float blue = [protocolor blue];
+              #         FloatValue* alpha_wrapper = [protocolor alpha];
+              #         float alpha = 1.0;
+              #         if (alpha_wrapper != nil) {
+              #           alpha = [alpha_wrapper value];
+              #         }
+              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+              #      }
+              #
+              #      static Color* toProto(UIColor* color) {
+              #          CGFloat red, green, blue, alpha;
+              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+              #            return nil;
+              #          }
+              #          Color* result = [[Color alloc] init];
+              #          [result setRed:red];
+              #          [result setGreen:green];
+              #          [result setBlue:blue];
+              #          if (alpha &lt;= 0.9999) {
+              #            [result setAlpha:floatWrapperWithValue(alpha)];
+              #          }
+              #          [result autorelease];
+              #          return result;
+              #     }
+              #     // ...
+              #
+              #  Example (JavaScript):
+              #
+              #     // ...
+              #
+              #     var protoToCssColor = function(rgb_color) {
+              #        var redFrac = rgb_color.red || 0.0;
+              #        var greenFrac = rgb_color.green || 0.0;
+              #        var blueFrac = rgb_color.blue || 0.0;
+              #        var red = Math.floor(redFrac * 255);
+              #        var green = Math.floor(greenFrac * 255);
+              #        var blue = Math.floor(blueFrac * 255);
+              #
+              #        if (!('alpha' in rgb_color)) {
+              #           return rgbToCssColor_(red, green, blue);
+              #        }
+              #
+              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+              #        var rgbParams = [red, green, blue].join(',');
+              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+              #     };
+              #
+              #     var rgbToCssColor_ = function(red, green, blue) {
+              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+              #       var hexString = rgbNumber.toString(16);
+              #       var missingZeros = 6 - hexString.length;
+              #       var resultBuilder = ['#'];
+              #       for (var i = 0; i &lt; missingZeros; i++) {
+              #          resultBuilder.push('0');
+              #       }
+              #       resultBuilder.push(hexString);
+              #       return resultBuilder.join('');
+              #     };
+              #
+              #     // ...
+            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                # the final pixel color is defined by the equation:
+                #
+                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                #
+                # This means that a value of 1.0 corresponds to a solid color, whereas
+                # a value of 0.0 corresponds to a completely transparent color. This
+                # uses a wrapper message rather than a simple float scalar so that it is
+                # possible to distinguish between a default value and the value being unset.
+                # If omitted, this color object is to be rendered as a solid color
+                # (as if the alpha value had been explicitly given with a value of 1.0).
+            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+          },
+        },
+        "sheetId": 42, # The ID of the sheet. Must be non-negative.
+            # This field cannot be changed once set.
+      },
       "protectedRanges": [ # The protected ranges in this sheet.
         { # A protected range.
           "unprotectedRanges": [ # The list of unprotected ranges within a protected sheet.
@@ -54586,6 +115750,21 @@
               #
               # When writing, only one of range or named_range_id
               # may be set.
+          "protectedRangeId": 42, # The ID of the protected range.
+              # This field is read-only.
+          "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
+              # This field is only visible to users with edit access to the protected
+              # range and the document.
+              # Editors are not supported with warning_only protection.
+            "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
+                # range.  Domain protection is only supported on documents within a domain.
+            "users": [ # The email addresses of users with edit access to the protected range.
+              "A String",
+            ],
+            "groups": [ # The email addresses of groups with edit access to the protected range.
+              "A String",
+            ],
+          },
           "range": { # A range on a sheet. # The range that is being protected.
               # The range may be fully unbounded, in which case this is considered
               # a protected sheet.
@@ -54626,21 +115805,6 @@
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
             "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
-          "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
-              # This field is only visible to users with edit access to the protected
-              # range and the document.
-              # Editors are not supported with warning_only protection.
-            "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
-                # range.  Domain protection is only supported on documents within a domain.
-            "users": [ # The email addresses of users with edit access to the protected range.
-              "A String",
-            ],
-            "groups": [ # The email addresses of groups with edit access to the protected range.
-              "A String",
-            ],
-          },
-          "protectedRangeId": 42, # The ID of the protected range.
-              # This field is read-only.
           "warningOnly": True or False, # True if this protected range will show a warning when editing.
               # Warning-based protection means that every user can edit data in the
               # protected range, except editing will prompt a warning asking the user
@@ -54653,6 +115817,7 @@
         },
       ],
       "data": [ # Data in the grid, if this is a grid sheet.
+          #
           # The number of GridData objects returned is dependent on the number of
           # ranges requested on this sheet. For example, if this is representing
           # `Sheet1`, and the spreadsheet was requested with ranges
@@ -54692,8 +115857,8 @@
                       "sheetId": 42, # The sheet this span is on.
                       "dimension": "A String", # The dimension of the span.
                     },
-                    "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                     "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+                    "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                   },
                   "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
                       # specified.
@@ -54738,8 +115903,8 @@
                       "sheetId": 42, # The sheet this span is on.
                       "dimension": "A String", # The dimension of the span.
                     },
-                    "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                     "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+                    "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                   },
                   "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
                       # specified.
@@ -54810,15 +115975,15 @@
                             "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                 # (Note that formulaValue is not valid,
                                 #  because the values will be calculated.)
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
+                              "formulaValue": "A String", # Represents a formula.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
@@ -54832,7 +115997,7 @@
                             # If not specified, sorting is alphabetical by this group's values.
                           "buckets": [ # Determines the bucket from which values are chosen to sort.
                               #
-                              # For example, in a pivot table with one row group & two column groups,
+                              # For example, in a pivot table with one row group &amp; two column groups,
                               # the row group can list up to two values. The first value corresponds
                               # to a value within the first column group, and the second value
                               # corresponds to a value in the second column group.  If no values
@@ -54840,15 +116005,15 @@
                               # to the "Grand Total" over the column groups. If a single value is listed,
                               # this would correspond to using the "Total" of that bucket.
                             { # The kinds of value that a cell in a spreadsheet can have.
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
+                              "formulaValue": "A String", # Represents a formula.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
@@ -54861,6 +116026,11 @@
                               # grouping should be sorted by.
                         },
                         "sortOrder": "A String", # The order the values in this group should be sorted.
+                        "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
+                            #
+                            # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                            # means this group refers to column `C`, whereas the offset `1` would
+                            # refer to column `D`.
                         "groupRule": { # An optional setting on a PivotGroup that defines buckets for the values # The group rule to apply to this row/column group.
                             # in the source data column rather than breaking out each individual value.
                             # Only one PivotGroup with a group rule may be added for each column in
@@ -54893,10 +116063,10 @@
                               #     +-------------+-------------------+
                               #     | Grouped Age | AVERAGE of Amount |
                               #     +-------------+-------------------+
-                              #     | < 25        |            $19.34 |
+                              #     | &lt; 25        |            $19.34 |
                               #     | 25-45       |            $31.43 |
                               #     | 45-65       |            $35.87 |
-                              #     | > 65        |            $27.55 |
+                              #     | &gt; 65        |            $27.55 |
                               #     +-------------+-------------------+
                               #     | Grand Total |            $29.12 |
                               #     +-------------+-------------------+
@@ -54943,15 +116113,15 @@
                                     # group within a given ManualRule. Items that do not appear in any
                                     # group will appear on their own.
                                   { # The kinds of value that a cell in a spreadsheet can have.
-                                    "numberValue": 3.14, # Represents a double value.
-                                        # Note: Dates, Times and DateTimes are represented as doubles in
-                                        # "serial number" format.
-                                    "boolValue": True or False, # Represents a boolean value.
-                                    "formulaValue": "A String", # Represents a formula.
                                     "stringValue": "A String", # Represents a string value.
                                         # Leading single quotes are not included. For example, if the user typed
                                         # `'123` into the UI, this would be represented as a `stringValue` of
                                         # `"123"`.
+                                    "boolValue": True or False, # Represents a boolean value.
+                                    "numberValue": 3.14, # Represents a double value.
+                                        # Note: Dates, Times and DateTimes are represented as doubles in
+                                        # "serial number" format.
+                                    "formulaValue": "A String", # Represents a formula.
                                     "errorValue": { # An error in a cell. # Represents an error.
                                         # This field is read-only.
                                       "message": "A String", # A message with more information about the error
@@ -54962,15 +116132,15 @@
                                 ],
                                 "groupName": { # The kinds of value that a cell in a spreadsheet can have. # The group name, which must be a string. Each group in a given
                                     # ManualRule must have a unique group name.
-                                  "numberValue": 3.14, # Represents a double value.
-                                      # Note: Dates, Times and DateTimes are represented as doubles in
-                                      # "serial number" format.
-                                  "boolValue": True or False, # Represents a boolean value.
-                                  "formulaValue": "A String", # Represents a formula.
                                   "stringValue": "A String", # Represents a string value.
                                       # Leading single quotes are not included. For example, if the user typed
                                       # `'123` into the UI, this would be represented as a `stringValue` of
                                       # `"123"`.
+                                  "boolValue": True or False, # Represents a boolean value.
+                                  "numberValue": 3.14, # Represents a double value.
+                                      # Note: Dates, Times and DateTimes are represented as doubles in
+                                      # "serial number" format.
+                                  "formulaValue": "A String", # Represents a formula.
                                   "errorValue": { # An error in a cell. # Represents an error.
                                       # This field is read-only.
                                     "message": "A String", # A message with more information about the error
@@ -55007,11 +116177,6 @@
                             "type": "A String", # The type of date-time grouping to apply.
                           },
                         },
-                        "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
-                            #
-                            # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                            # means this group refers to column `C`, whereas the offset `1` would refer
-                            # to column `D`.
                       },
                     ],
                     "source": { # A range on a sheet. # The range the pivot table is reading data from.
@@ -55053,18 +116218,18 @@
                       { # The definition of how a value in a pivot table should be calculated.
                         "formula": "A String", # A custom formula to calculate the value.  The formula must start
                             # with an `=` character.
-                        "name": "A String", # A name to use for the value.
-                        "sourceColumnOffset": 42, # The column offset of the source range that this value reads from.
-                            #
-                            # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                            # means this value refers to column `C`, whereas the offset `1` would
-                            # refer to column `D`.
                         "summarizeFunction": "A String", # A function to summarize the value.
                             # If formula is set, the only supported values are
                             # SUM and
                             # CUSTOM.
                             # If sourceColumnOffset is set, then `CUSTOM`
                             # is not supported.
+                        "name": "A String", # A name to use for the value.
+                        "sourceColumnOffset": 42, # The column offset of the source range that this value reads from.
+                            #
+                            # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                            # means this value refers to column `C`, whereas the offset `1` would
+                            # refer to column `D`.
                         "calculatedDisplayType": "A String", # If specified, indicates that pivot values should be displayed as
                             # the result of a calculation with another pivot value. For example, if
                             # calculated_display_type is specified as PERCENT_OF_GRAND_TOTAL, all the
@@ -55130,15 +116295,15 @@
                             "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                 # (Note that formulaValue is not valid,
                                 #  because the values will be calculated.)
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
+                              "formulaValue": "A String", # Represents a formula.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
@@ -55152,7 +116317,7 @@
                             # If not specified, sorting is alphabetical by this group's values.
                           "buckets": [ # Determines the bucket from which values are chosen to sort.
                               #
-                              # For example, in a pivot table with one row group & two column groups,
+                              # For example, in a pivot table with one row group &amp; two column groups,
                               # the row group can list up to two values. The first value corresponds
                               # to a value within the first column group, and the second value
                               # corresponds to a value in the second column group.  If no values
@@ -55160,15 +116325,15 @@
                               # to the "Grand Total" over the column groups. If a single value is listed,
                               # this would correspond to using the "Total" of that bucket.
                             { # The kinds of value that a cell in a spreadsheet can have.
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
+                              "formulaValue": "A String", # Represents a formula.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
@@ -55181,6 +116346,11 @@
                               # grouping should be sorted by.
                         },
                         "sortOrder": "A String", # The order the values in this group should be sorted.
+                        "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
+                            #
+                            # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                            # means this group refers to column `C`, whereas the offset `1` would
+                            # refer to column `D`.
                         "groupRule": { # An optional setting on a PivotGroup that defines buckets for the values # The group rule to apply to this row/column group.
                             # in the source data column rather than breaking out each individual value.
                             # Only one PivotGroup with a group rule may be added for each column in
@@ -55213,10 +116383,10 @@
                               #     +-------------+-------------------+
                               #     | Grouped Age | AVERAGE of Amount |
                               #     +-------------+-------------------+
-                              #     | < 25        |            $19.34 |
+                              #     | &lt; 25        |            $19.34 |
                               #     | 25-45       |            $31.43 |
                               #     | 45-65       |            $35.87 |
-                              #     | > 65        |            $27.55 |
+                              #     | &gt; 65        |            $27.55 |
                               #     +-------------+-------------------+
                               #     | Grand Total |            $29.12 |
                               #     +-------------+-------------------+
@@ -55263,15 +116433,15 @@
                                     # group within a given ManualRule. Items that do not appear in any
                                     # group will appear on their own.
                                   { # The kinds of value that a cell in a spreadsheet can have.
-                                    "numberValue": 3.14, # Represents a double value.
-                                        # Note: Dates, Times and DateTimes are represented as doubles in
-                                        # "serial number" format.
-                                    "boolValue": True or False, # Represents a boolean value.
-                                    "formulaValue": "A String", # Represents a formula.
                                     "stringValue": "A String", # Represents a string value.
                                         # Leading single quotes are not included. For example, if the user typed
                                         # `'123` into the UI, this would be represented as a `stringValue` of
                                         # `"123"`.
+                                    "boolValue": True or False, # Represents a boolean value.
+                                    "numberValue": 3.14, # Represents a double value.
+                                        # Note: Dates, Times and DateTimes are represented as doubles in
+                                        # "serial number" format.
+                                    "formulaValue": "A String", # Represents a formula.
                                     "errorValue": { # An error in a cell. # Represents an error.
                                         # This field is read-only.
                                       "message": "A String", # A message with more information about the error
@@ -55282,15 +116452,15 @@
                                 ],
                                 "groupName": { # The kinds of value that a cell in a spreadsheet can have. # The group name, which must be a string. Each group in a given
                                     # ManualRule must have a unique group name.
-                                  "numberValue": 3.14, # Represents a double value.
-                                      # Note: Dates, Times and DateTimes are represented as doubles in
-                                      # "serial number" format.
-                                  "boolValue": True or False, # Represents a boolean value.
-                                  "formulaValue": "A String", # Represents a formula.
                                   "stringValue": "A String", # Represents a string value.
                                       # Leading single quotes are not included. For example, if the user typed
                                       # `'123` into the UI, this would be represented as a `stringValue` of
                                       # `"123"`.
+                                  "boolValue": True or False, # Represents a boolean value.
+                                  "numberValue": 3.14, # Represents a double value.
+                                      # Note: Dates, Times and DateTimes are represented as doubles in
+                                      # "serial number" format.
+                                  "formulaValue": "A String", # Represents a formula.
                                   "errorValue": { # An error in a cell. # Represents an error.
                                       # This field is read-only.
                                     "message": "A String", # A message with more information about the error
@@ -55327,11 +116497,6 @@
                             "type": "A String", # The type of date-time grouping to apply.
                           },
                         },
-                        "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
-                            #
-                            # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                            # means this group refers to column `C`, whereas the offset `1` would refer
-                            # to column `D`.
                       },
                     ],
                   },
@@ -55343,15 +116508,15 @@
                       # the calculated value.  For cells with literals, this is
                       # the same as the user_entered_value.
                       # This field is read-only.
-                    "numberValue": 3.14, # Represents a double value.
-                        # Note: Dates, Times and DateTimes are represented as doubles in
-                        # "serial number" format.
-                    "boolValue": True or False, # Represents a boolean value.
-                    "formulaValue": "A String", # Represents a formula.
                     "stringValue": "A String", # Represents a string value.
                         # Leading single quotes are not included. For example, if the user typed
                         # `'123` into the UI, this would be represented as a `stringValue` of
                         # `"123"`.
+                    "boolValue": True or False, # Represents a boolean value.
+                    "numberValue": 3.14, # Represents a double value.
+                        # Note: Dates, Times and DateTimes are represented as doubles in
+                        # "serial number" format.
+                    "formulaValue": "A String", # Represents a formula.
                     "errorValue": { # An error in a cell. # Represents an error.
                         # This field is read-only.
                       "message": "A String", # A message with more information about the error
@@ -55365,15 +116530,15 @@
                   "userEnteredValue": { # The kinds of value that a cell in a spreadsheet can have. # The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()`
                       # Note: Dates, Times and DateTimes are represented as doubles in
                       # serial number format.
-                    "numberValue": 3.14, # Represents a double value.
-                        # Note: Dates, Times and DateTimes are represented as doubles in
-                        # "serial number" format.
-                    "boolValue": True or False, # Represents a boolean value.
-                    "formulaValue": "A String", # Represents a formula.
                     "stringValue": "A String", # Represents a string value.
                         # Leading single quotes are not included. For example, if the user typed
                         # `'123` into the UI, this would be represented as a `stringValue` of
                         # `"123"`.
+                    "boolValue": True or False, # Represents a boolean value.
+                    "numberValue": 3.14, # Represents a double value.
+                        # Note: Dates, Times and DateTimes are represented as doubles in
+                        # "serial number" format.
+                    "formulaValue": "A String", # Represents a formula.
                     "errorValue": { # An error in a cell. # Represents an error.
                         # This field is read-only.
                       "message": "A String", # A message with more information about the error
@@ -55388,6 +116553,13 @@
                       # If the effective format is the default format, effective format will
                       # not be written.
                       # This field is read-only.
+                    "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                        # When updating padding, every field must be specified.
+                      "top": 42, # The top padding of the cell.
+                      "left": 42, # The left padding of the cell.
+                      "right": 42, # The right padding of the cell.
+                      "bottom": 42, # The bottom padding of the cell.
+                    },
                     "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                       "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                           # the user's locale will be used if necessary for the given type.
@@ -55397,12 +116569,143 @@
                           # When writing, this field must be set.
                     },
                     "textDirection": "A String", # The direction of the text in the cell.
-                    "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                        # When updating padding, every field must be specified.
-                      "top": 42, # The top padding of the cell.
-                      "left": 42, # The left padding of the cell.
-                      "right": 42, # The right padding of the cell.
-                      "bottom": 42, # The bottom padding of the cell.
+                    "backgroundColorStyle": { # A color value. # The background color of the cell.
+                        # If background_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
                     },
                     "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                     "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -55475,14 +116778,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -55512,11 +116815,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -55612,14 +116915,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -55649,11 +116952,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -55678,284 +116981,144 @@
                         },
                         "width": 42, # The width of the border, in pixels.
                             # Deprecated; the width is determined by the "style" field.
-                        "style": "A String", # The style of the border.
-                      },
-                      "right": { # A border along a cell. # The right border of the cell.
-                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                            # for simplicity of conversion to/from color representations in various
-                            # languages over compactness; for example, the fields of this representation
-                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                            # method in iOS; and, with just a little work, it can be easily formatted into
-                            # a CSS "rgba()" string in JavaScript, as well.
-                            #
-                            # Note: this proto does not carry information about the absolute color space
-                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                            # space.
-                            #
-                            # Example (Java):
-                            #
-                            #      import com.google.type.Color;
-                            #
-                            #      // ...
-                            #      public static java.awt.Color fromProto(Color protocolor) {
-                            #        float alpha = protocolor.hasAlpha()
-                            #            ? protocolor.getAlpha().getValue()
-                            #            : 1.0;
-                            #
-                            #        return new java.awt.Color(
-                            #            protocolor.getRed(),
-                            #            protocolor.getGreen(),
-                            #            protocolor.getBlue(),
-                            #            alpha);
-                            #      }
-                            #
-                            #      public static Color toProto(java.awt.Color color) {
-                            #        float red = (float) color.getRed();
-                            #        float green = (float) color.getGreen();
-                            #        float blue = (float) color.getBlue();
-                            #        float denominator = 255.0;
-                            #        Color.Builder resultBuilder =
-                            #            Color
-                            #                .newBuilder()
-                            #                .setRed(red / denominator)
-                            #                .setGreen(green / denominator)
-                            #                .setBlue(blue / denominator);
-                            #        int alpha = color.getAlpha();
-                            #        if (alpha != 255) {
-                            #          result.setAlpha(
-                            #              FloatValue
-                            #                  .newBuilder()
-                            #                  .setValue(((float) alpha) / denominator)
-                            #                  .build());
-                            #        }
-                            #        return resultBuilder.build();
-                            #      }
-                            #      // ...
-                            #
-                            # Example (iOS / Obj-C):
-                            #
-                            #      // ...
-                            #      static UIColor* fromProto(Color* protocolor) {
-                            #         float red = [protocolor red];
-                            #         float green = [protocolor green];
-                            #         float blue = [protocolor blue];
-                            #         FloatValue* alpha_wrapper = [protocolor alpha];
-                            #         float alpha = 1.0;
-                            #         if (alpha_wrapper != nil) {
-                            #           alpha = [alpha_wrapper value];
-                            #         }
-                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                            #      }
-                            #
-                            #      static Color* toProto(UIColor* color) {
-                            #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                            #            return nil;
-                            #          }
-                            #          Color* result = [[Color alloc] init];
-                            #          [result setRed:red];
-                            #          [result setGreen:green];
-                            #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
-                            #            [result setAlpha:floatWrapperWithValue(alpha)];
-                            #          }
-                            #          [result autorelease];
-                            #          return result;
-                            #     }
-                            #     // ...
-                            #
-                            #  Example (JavaScript):
-                            #
-                            #     // ...
-                            #
-                            #     var protoToCssColor = function(rgb_color) {
-                            #        var redFrac = rgb_color.red || 0.0;
-                            #        var greenFrac = rgb_color.green || 0.0;
-                            #        var blueFrac = rgb_color.blue || 0.0;
-                            #        var red = Math.floor(redFrac * 255);
-                            #        var green = Math.floor(greenFrac * 255);
-                            #        var blue = Math.floor(blueFrac * 255);
-                            #
-                            #        if (!('alpha' in rgb_color)) {
-                            #           return rgbToCssColor_(red, green, blue);
-                            #        }
-                            #
-                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                            #        var rgbParams = [red, green, blue].join(',');
-                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                            #     };
-                            #
-                            #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                            #       var hexString = rgbNumber.toString(16);
-                            #       var missingZeros = 6 - hexString.length;
-                            #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
-                            #          resultBuilder.push('0');
-                            #       }
-                            #       resultBuilder.push(hexString);
-                            #       return resultBuilder.join('');
-                            #     };
-                            #
-                            #     // ...
-                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                              # the final pixel color is defined by the equation:
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
                               #
-                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
                               #
-                              # This means that a value of 1.0 corresponds to a solid color, whereas
-                              # a value of 0.0 corresponds to a completely transparent color. This
-                              # uses a wrapper message rather than a simple float scalar so that it is
-                              # possible to distinguish between a default value and the value being unset.
-                              # If omitted, this color object is to be rendered as a solid color
-                              # (as if the alpha value had been explicitly given with a value of 1.0).
-                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
                         },
-                        "width": 42, # The width of the border, in pixels.
-                            # Deprecated; the width is determined by the "style" field.
-                        "style": "A String", # The style of the border.
-                      },
-                      "bottom": { # A border along a cell. # The bottom border of the cell.
-                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                            # for simplicity of conversion to/from color representations in various
-                            # languages over compactness; for example, the fields of this representation
-                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                            # method in iOS; and, with just a little work, it can be easily formatted into
-                            # a CSS "rgba()" string in JavaScript, as well.
-                            #
-                            # Note: this proto does not carry information about the absolute color space
-                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                            # space.
-                            #
-                            # Example (Java):
-                            #
-                            #      import com.google.type.Color;
-                            #
-                            #      // ...
-                            #      public static java.awt.Color fromProto(Color protocolor) {
-                            #        float alpha = protocolor.hasAlpha()
-                            #            ? protocolor.getAlpha().getValue()
-                            #            : 1.0;
-                            #
-                            #        return new java.awt.Color(
-                            #            protocolor.getRed(),
-                            #            protocolor.getGreen(),
-                            #            protocolor.getBlue(),
-                            #            alpha);
-                            #      }
-                            #
-                            #      public static Color toProto(java.awt.Color color) {
-                            #        float red = (float) color.getRed();
-                            #        float green = (float) color.getGreen();
-                            #        float blue = (float) color.getBlue();
-                            #        float denominator = 255.0;
-                            #        Color.Builder resultBuilder =
-                            #            Color
-                            #                .newBuilder()
-                            #                .setRed(red / denominator)
-                            #                .setGreen(green / denominator)
-                            #                .setBlue(blue / denominator);
-                            #        int alpha = color.getAlpha();
-                            #        if (alpha != 255) {
-                            #          result.setAlpha(
-                            #              FloatValue
-                            #                  .newBuilder()
-                            #                  .setValue(((float) alpha) / denominator)
-                            #                  .build());
-                            #        }
-                            #        return resultBuilder.build();
-                            #      }
-                            #      // ...
-                            #
-                            # Example (iOS / Obj-C):
-                            #
-                            #      // ...
-                            #      static UIColor* fromProto(Color* protocolor) {
-                            #         float red = [protocolor red];
-                            #         float green = [protocolor green];
-                            #         float blue = [protocolor blue];
-                            #         FloatValue* alpha_wrapper = [protocolor alpha];
-                            #         float alpha = 1.0;
-                            #         if (alpha_wrapper != nil) {
-                            #           alpha = [alpha_wrapper value];
-                            #         }
-                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                            #      }
-                            #
-                            #      static Color* toProto(UIColor* color) {
-                            #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                            #            return nil;
-                            #          }
-                            #          Color* result = [[Color alloc] init];
-                            #          [result setRed:red];
-                            #          [result setGreen:green];
-                            #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
-                            #            [result setAlpha:floatWrapperWithValue(alpha)];
-                            #          }
-                            #          [result autorelease];
-                            #          return result;
-                            #     }
-                            #     // ...
-                            #
-                            #  Example (JavaScript):
-                            #
-                            #     // ...
-                            #
-                            #     var protoToCssColor = function(rgb_color) {
-                            #        var redFrac = rgb_color.red || 0.0;
-                            #        var greenFrac = rgb_color.green || 0.0;
-                            #        var blueFrac = rgb_color.blue || 0.0;
-                            #        var red = Math.floor(redFrac * 255);
-                            #        var green = Math.floor(greenFrac * 255);
-                            #        var blue = Math.floor(blueFrac * 255);
-                            #
-                            #        if (!('alpha' in rgb_color)) {
-                            #           return rgbToCssColor_(red, green, blue);
-                            #        }
-                            #
-                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                            #        var rgbParams = [red, green, blue].join(',');
-                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                            #     };
-                            #
-                            #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                            #       var hexString = rgbNumber.toString(16);
-                            #       var missingZeros = 6 - hexString.length;
-                            #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
-                            #          resultBuilder.push('0');
-                            #       }
-                            #       resultBuilder.push(hexString);
-                            #       return resultBuilder.join('');
-                            #     };
-                            #
-                            #     // ...
-                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                              # the final pixel color is defined by the equation:
-                              #
-                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                              #
-                              # This means that a value of 1.0 corresponds to a solid color, whereas
-                              # a value of 0.0 corresponds to a completely transparent color. This
-                              # uses a wrapper message rather than a simple float scalar so that it is
-                              # possible to distinguish between a default value and the value being unset.
-                              # If omitted, this color object is to be rendered as a solid color
-                              # (as if the alpha value had been explicitly given with a value of 1.0).
-                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                        },
-                        "width": 42, # The width of the border, in pixels.
-                            # Deprecated; the width is determined by the "style" field.
                         "style": "A String", # The style of the border.
                       },
                       "left": { # A border along a cell. # The left border of the cell.
@@ -56029,14 +117192,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -56066,11 +117229,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -56095,6 +117258,698 @@
                         },
                         "width": 42, # The width of the border, in pixels.
                             # Deprecated; the width is determined by the "style" field.
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
+                        "style": "A String", # The style of the border.
+                      },
+                      "right": { # A border along a cell. # The right border of the cell.
+                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                        "width": 42, # The width of the border, in pixels.
+                            # Deprecated; the width is determined by the "style" field.
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
+                        "style": "A String", # The style of the border.
+                      },
+                      "bottom": { # A border along a cell. # The bottom border of the cell.
+                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                        "width": 42, # The width of the border, in pixels.
+                            # Deprecated; the width is determined by the "style" field.
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
                         "style": "A String", # The style of the border.
                       },
                     },
@@ -56192,14 +118047,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -56229,11 +118084,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -56257,6 +118112,144 @@
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
                       "bold": True or False, # True if the text is bold.
+                      "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                          # If foreground_color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "strikethrough": True or False, # True if the text has a strikethrough.
                       "fontFamily": "A String", # The font family.
                       "fontSize": 42, # The size of the font.
@@ -56268,6 +118261,13 @@
                   "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell.
                       #
                       # When writing, the new format will be merged with the existing format.
+                    "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                        # When updating padding, every field must be specified.
+                      "top": 42, # The top padding of the cell.
+                      "left": 42, # The left padding of the cell.
+                      "right": 42, # The right padding of the cell.
+                      "bottom": 42, # The bottom padding of the cell.
+                    },
                     "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                       "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                           # the user's locale will be used if necessary for the given type.
@@ -56277,12 +118277,143 @@
                           # When writing, this field must be set.
                     },
                     "textDirection": "A String", # The direction of the text in the cell.
-                    "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                        # When updating padding, every field must be specified.
-                      "top": 42, # The top padding of the cell.
-                      "left": 42, # The left padding of the cell.
-                      "right": 42, # The right padding of the cell.
-                      "bottom": 42, # The bottom padding of the cell.
+                    "backgroundColorStyle": { # A color value. # The background color of the cell.
+                        # If background_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
                     },
                     "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                     "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -56355,14 +118486,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -56392,11 +118523,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -56492,14 +118623,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -56529,11 +118660,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -56558,284 +118689,144 @@
                         },
                         "width": 42, # The width of the border, in pixels.
                             # Deprecated; the width is determined by the "style" field.
-                        "style": "A String", # The style of the border.
-                      },
-                      "right": { # A border along a cell. # The right border of the cell.
-                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                            # for simplicity of conversion to/from color representations in various
-                            # languages over compactness; for example, the fields of this representation
-                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                            # method in iOS; and, with just a little work, it can be easily formatted into
-                            # a CSS "rgba()" string in JavaScript, as well.
-                            #
-                            # Note: this proto does not carry information about the absolute color space
-                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                            # space.
-                            #
-                            # Example (Java):
-                            #
-                            #      import com.google.type.Color;
-                            #
-                            #      // ...
-                            #      public static java.awt.Color fromProto(Color protocolor) {
-                            #        float alpha = protocolor.hasAlpha()
-                            #            ? protocolor.getAlpha().getValue()
-                            #            : 1.0;
-                            #
-                            #        return new java.awt.Color(
-                            #            protocolor.getRed(),
-                            #            protocolor.getGreen(),
-                            #            protocolor.getBlue(),
-                            #            alpha);
-                            #      }
-                            #
-                            #      public static Color toProto(java.awt.Color color) {
-                            #        float red = (float) color.getRed();
-                            #        float green = (float) color.getGreen();
-                            #        float blue = (float) color.getBlue();
-                            #        float denominator = 255.0;
-                            #        Color.Builder resultBuilder =
-                            #            Color
-                            #                .newBuilder()
-                            #                .setRed(red / denominator)
-                            #                .setGreen(green / denominator)
-                            #                .setBlue(blue / denominator);
-                            #        int alpha = color.getAlpha();
-                            #        if (alpha != 255) {
-                            #          result.setAlpha(
-                            #              FloatValue
-                            #                  .newBuilder()
-                            #                  .setValue(((float) alpha) / denominator)
-                            #                  .build());
-                            #        }
-                            #        return resultBuilder.build();
-                            #      }
-                            #      // ...
-                            #
-                            # Example (iOS / Obj-C):
-                            #
-                            #      // ...
-                            #      static UIColor* fromProto(Color* protocolor) {
-                            #         float red = [protocolor red];
-                            #         float green = [protocolor green];
-                            #         float blue = [protocolor blue];
-                            #         FloatValue* alpha_wrapper = [protocolor alpha];
-                            #         float alpha = 1.0;
-                            #         if (alpha_wrapper != nil) {
-                            #           alpha = [alpha_wrapper value];
-                            #         }
-                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                            #      }
-                            #
-                            #      static Color* toProto(UIColor* color) {
-                            #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                            #            return nil;
-                            #          }
-                            #          Color* result = [[Color alloc] init];
-                            #          [result setRed:red];
-                            #          [result setGreen:green];
-                            #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
-                            #            [result setAlpha:floatWrapperWithValue(alpha)];
-                            #          }
-                            #          [result autorelease];
-                            #          return result;
-                            #     }
-                            #     // ...
-                            #
-                            #  Example (JavaScript):
-                            #
-                            #     // ...
-                            #
-                            #     var protoToCssColor = function(rgb_color) {
-                            #        var redFrac = rgb_color.red || 0.0;
-                            #        var greenFrac = rgb_color.green || 0.0;
-                            #        var blueFrac = rgb_color.blue || 0.0;
-                            #        var red = Math.floor(redFrac * 255);
-                            #        var green = Math.floor(greenFrac * 255);
-                            #        var blue = Math.floor(blueFrac * 255);
-                            #
-                            #        if (!('alpha' in rgb_color)) {
-                            #           return rgbToCssColor_(red, green, blue);
-                            #        }
-                            #
-                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                            #        var rgbParams = [red, green, blue].join(',');
-                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                            #     };
-                            #
-                            #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                            #       var hexString = rgbNumber.toString(16);
-                            #       var missingZeros = 6 - hexString.length;
-                            #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
-                            #          resultBuilder.push('0');
-                            #       }
-                            #       resultBuilder.push(hexString);
-                            #       return resultBuilder.join('');
-                            #     };
-                            #
-                            #     // ...
-                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                              # the final pixel color is defined by the equation:
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
                               #
-                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
                               #
-                              # This means that a value of 1.0 corresponds to a solid color, whereas
-                              # a value of 0.0 corresponds to a completely transparent color. This
-                              # uses a wrapper message rather than a simple float scalar so that it is
-                              # possible to distinguish between a default value and the value being unset.
-                              # If omitted, this color object is to be rendered as a solid color
-                              # (as if the alpha value had been explicitly given with a value of 1.0).
-                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
                         },
-                        "width": 42, # The width of the border, in pixels.
-                            # Deprecated; the width is determined by the "style" field.
-                        "style": "A String", # The style of the border.
-                      },
-                      "bottom": { # A border along a cell. # The bottom border of the cell.
-                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                            # for simplicity of conversion to/from color representations in various
-                            # languages over compactness; for example, the fields of this representation
-                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                            # method in iOS; and, with just a little work, it can be easily formatted into
-                            # a CSS "rgba()" string in JavaScript, as well.
-                            #
-                            # Note: this proto does not carry information about the absolute color space
-                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                            # space.
-                            #
-                            # Example (Java):
-                            #
-                            #      import com.google.type.Color;
-                            #
-                            #      // ...
-                            #      public static java.awt.Color fromProto(Color protocolor) {
-                            #        float alpha = protocolor.hasAlpha()
-                            #            ? protocolor.getAlpha().getValue()
-                            #            : 1.0;
-                            #
-                            #        return new java.awt.Color(
-                            #            protocolor.getRed(),
-                            #            protocolor.getGreen(),
-                            #            protocolor.getBlue(),
-                            #            alpha);
-                            #      }
-                            #
-                            #      public static Color toProto(java.awt.Color color) {
-                            #        float red = (float) color.getRed();
-                            #        float green = (float) color.getGreen();
-                            #        float blue = (float) color.getBlue();
-                            #        float denominator = 255.0;
-                            #        Color.Builder resultBuilder =
-                            #            Color
-                            #                .newBuilder()
-                            #                .setRed(red / denominator)
-                            #                .setGreen(green / denominator)
-                            #                .setBlue(blue / denominator);
-                            #        int alpha = color.getAlpha();
-                            #        if (alpha != 255) {
-                            #          result.setAlpha(
-                            #              FloatValue
-                            #                  .newBuilder()
-                            #                  .setValue(((float) alpha) / denominator)
-                            #                  .build());
-                            #        }
-                            #        return resultBuilder.build();
-                            #      }
-                            #      // ...
-                            #
-                            # Example (iOS / Obj-C):
-                            #
-                            #      // ...
-                            #      static UIColor* fromProto(Color* protocolor) {
-                            #         float red = [protocolor red];
-                            #         float green = [protocolor green];
-                            #         float blue = [protocolor blue];
-                            #         FloatValue* alpha_wrapper = [protocolor alpha];
-                            #         float alpha = 1.0;
-                            #         if (alpha_wrapper != nil) {
-                            #           alpha = [alpha_wrapper value];
-                            #         }
-                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                            #      }
-                            #
-                            #      static Color* toProto(UIColor* color) {
-                            #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                            #            return nil;
-                            #          }
-                            #          Color* result = [[Color alloc] init];
-                            #          [result setRed:red];
-                            #          [result setGreen:green];
-                            #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
-                            #            [result setAlpha:floatWrapperWithValue(alpha)];
-                            #          }
-                            #          [result autorelease];
-                            #          return result;
-                            #     }
-                            #     // ...
-                            #
-                            #  Example (JavaScript):
-                            #
-                            #     // ...
-                            #
-                            #     var protoToCssColor = function(rgb_color) {
-                            #        var redFrac = rgb_color.red || 0.0;
-                            #        var greenFrac = rgb_color.green || 0.0;
-                            #        var blueFrac = rgb_color.blue || 0.0;
-                            #        var red = Math.floor(redFrac * 255);
-                            #        var green = Math.floor(greenFrac * 255);
-                            #        var blue = Math.floor(blueFrac * 255);
-                            #
-                            #        if (!('alpha' in rgb_color)) {
-                            #           return rgbToCssColor_(red, green, blue);
-                            #        }
-                            #
-                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                            #        var rgbParams = [red, green, blue].join(',');
-                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                            #     };
-                            #
-                            #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                            #       var hexString = rgbNumber.toString(16);
-                            #       var missingZeros = 6 - hexString.length;
-                            #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
-                            #          resultBuilder.push('0');
-                            #       }
-                            #       resultBuilder.push(hexString);
-                            #       return resultBuilder.join('');
-                            #     };
-                            #
-                            #     // ...
-                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                              # the final pixel color is defined by the equation:
-                              #
-                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                              #
-                              # This means that a value of 1.0 corresponds to a solid color, whereas
-                              # a value of 0.0 corresponds to a completely transparent color. This
-                              # uses a wrapper message rather than a simple float scalar so that it is
-                              # possible to distinguish between a default value and the value being unset.
-                              # If omitted, this color object is to be rendered as a solid color
-                              # (as if the alpha value had been explicitly given with a value of 1.0).
-                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                        },
-                        "width": 42, # The width of the border, in pixels.
-                            # Deprecated; the width is determined by the "style" field.
                         "style": "A String", # The style of the border.
                       },
                       "left": { # A border along a cell. # The left border of the cell.
@@ -56909,14 +118900,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -56946,11 +118937,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -56975,6 +118966,698 @@
                         },
                         "width": 42, # The width of the border, in pixels.
                             # Deprecated; the width is determined by the "style" field.
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
+                        "style": "A String", # The style of the border.
+                      },
+                      "right": { # A border along a cell. # The right border of the cell.
+                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                        "width": 42, # The width of the border, in pixels.
+                            # Deprecated; the width is determined by the "style" field.
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
+                        "style": "A String", # The style of the border.
+                      },
+                      "bottom": { # A border along a cell. # The bottom border of the cell.
+                        "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                        "width": 42, # The width of the border, in pixels.
+                            # Deprecated; the width is determined by the "style" field.
+                        "colorStyle": { # A color value. # The color of the border.
+                            # If color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
                         "style": "A String", # The style of the border.
                       },
                     },
@@ -57072,14 +119755,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -57109,11 +119792,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -57137,6 +119820,144 @@
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
                       "bold": True or False, # True if the text is bold.
+                      "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                          # If foreground_color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "strikethrough": True or False, # True if the text has a strikethrough.
                       "fontFamily": "A String", # The font family.
                       "fontSize": 42, # The size of the font.
@@ -57263,14 +120084,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -57300,11 +120121,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -57328,6 +120149,144 @@
                           "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                         },
                         "bold": True or False, # True if the text is bold.
+                        "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                            # If foreground_color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
                         "strikethrough": True or False, # True if the text has a strikethrough.
                         "fontFamily": "A String", # The font family.
                         "fontSize": 42, # The size of the font.
@@ -57347,6 +120306,16 @@
         { # A group over an interval of rows or columns on a sheet, which can contain or
             # be contained within other groups. A group can be collapsed or expanded as a
             # unit on the sheet.
+          "depth": 42, # The depth of the group, representing how many groups have a range that
+              # wholly contains the range of this group.
+          "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
+              # collapsed if an overlapping group at a shallower depth is expanded.
+              #
+              # A true value does not imply that all dimensions within the group are
+              # hidden, since a dimension's visibility can change independently from this
+              # group property. However, when this property is updated, all dimensions
+              # within it are set to hidden if this field is true, or set to visible if
+              # this field is false.
           "range": { # A range along a single dimension on a sheet. # The range over which this group exists.
               # All indexes are zero-based.
               # Indexes are half open: the start index is inclusive
@@ -57357,16 +120326,6 @@
             "sheetId": 42, # The sheet this span is on.
             "dimension": "A String", # The dimension of the span.
           },
-          "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
-              # collapsed if an overlapping group at a shallower depth is expanded.
-              #
-              # A true value does not imply that all dimensions within the group are
-              # hidden, since a dimension's visibility can change independently from this
-              # group property. However, when this property is updated, all dimensions
-              # within it are set to hidden if this field is true, or set to visible if
-              # this field is false.
-          "depth": 42, # The depth of the group, representing how many groups have a range that
-              # wholly contains the range of this group.
         },
       ],
     },
@@ -57427,9 +120386,164 @@
         # * a combination of the ISO language code and country code, such as `en_US`
         #
         # Note: when updating this field, not all locales/languages are supported.
+    "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
+    "spreadsheetTheme": { # Represents spreadsheet theme # Theme applied to the spreadsheet.
+      "themeColors": [ # The spreadsheet theme color pairs. To update you must provide all theme
+          # color pairs.
+        { # A pair mapping a spreadsheet theme color type to the concrete color it
+            # represents.
+          "color": { # A color value. # The concrete color corresponding to the theme color type.
+            "themeColor": "A String", # Theme color.
+            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
+          },
+          "colorType": "A String", # The type of the spreadsheet theme color.
+        },
+      ],
+      "primaryFontFamily": "A String", # / Name of the primary font family.
+    },
     "defaultFormat": { # The format of a cell. # The default format of all cells in the spreadsheet.
         # CellData.effectiveFormat will not be set if
         # the cell's format is equal to this default format. This field is read-only.
+      "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+          # When updating padding, every field must be specified.
+        "top": 42, # The top padding of the cell.
+        "left": 42, # The left padding of the cell.
+        "right": 42, # The right padding of the cell.
+        "bottom": 42, # The bottom padding of the cell.
+      },
       "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
         "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
             # the user's locale will be used if necessary for the given type.
@@ -57439,12 +120553,143 @@
             # When writing, this field must be set.
       },
       "textDirection": "A String", # The direction of the text in the cell.
-      "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-          # When updating padding, every field must be specified.
-        "top": 42, # The top padding of the cell.
-        "left": 42, # The left padding of the cell.
-        "right": 42, # The right padding of the cell.
-        "bottom": 42, # The bottom padding of the cell.
+      "backgroundColorStyle": { # A color value. # The background color of the cell.
+          # If background_color is also set, this field takes precedence.
+        "themeColor": "A String", # Theme color.
+        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+            # for simplicity of conversion to/from color representations in various
+            # languages over compactness; for example, the fields of this representation
+            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+            # method in iOS; and, with just a little work, it can be easily formatted into
+            # a CSS "rgba()" string in JavaScript, as well.
+            #
+            # Note: this proto does not carry information about the absolute color space
+            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+            # space.
+            #
+            # Example (Java):
+            #
+            #      import com.google.type.Color;
+            #
+            #      // ...
+            #      public static java.awt.Color fromProto(Color protocolor) {
+            #        float alpha = protocolor.hasAlpha()
+            #            ? protocolor.getAlpha().getValue()
+            #            : 1.0;
+            #
+            #        return new java.awt.Color(
+            #            protocolor.getRed(),
+            #            protocolor.getGreen(),
+            #            protocolor.getBlue(),
+            #            alpha);
+            #      }
+            #
+            #      public static Color toProto(java.awt.Color color) {
+            #        float red = (float) color.getRed();
+            #        float green = (float) color.getGreen();
+            #        float blue = (float) color.getBlue();
+            #        float denominator = 255.0;
+            #        Color.Builder resultBuilder =
+            #            Color
+            #                .newBuilder()
+            #                .setRed(red / denominator)
+            #                .setGreen(green / denominator)
+            #                .setBlue(blue / denominator);
+            #        int alpha = color.getAlpha();
+            #        if (alpha != 255) {
+            #          result.setAlpha(
+            #              FloatValue
+            #                  .newBuilder()
+            #                  .setValue(((float) alpha) / denominator)
+            #                  .build());
+            #        }
+            #        return resultBuilder.build();
+            #      }
+            #      // ...
+            #
+            # Example (iOS / Obj-C):
+            #
+            #      // ...
+            #      static UIColor* fromProto(Color* protocolor) {
+            #         float red = [protocolor red];
+            #         float green = [protocolor green];
+            #         float blue = [protocolor blue];
+            #         FloatValue* alpha_wrapper = [protocolor alpha];
+            #         float alpha = 1.0;
+            #         if (alpha_wrapper != nil) {
+            #           alpha = [alpha_wrapper value];
+            #         }
+            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+            #      }
+            #
+            #      static Color* toProto(UIColor* color) {
+            #          CGFloat red, green, blue, alpha;
+            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+            #            return nil;
+            #          }
+            #          Color* result = [[Color alloc] init];
+            #          [result setRed:red];
+            #          [result setGreen:green];
+            #          [result setBlue:blue];
+            #          if (alpha &lt;= 0.9999) {
+            #            [result setAlpha:floatWrapperWithValue(alpha)];
+            #          }
+            #          [result autorelease];
+            #          return result;
+            #     }
+            #     // ...
+            #
+            #  Example (JavaScript):
+            #
+            #     // ...
+            #
+            #     var protoToCssColor = function(rgb_color) {
+            #        var redFrac = rgb_color.red || 0.0;
+            #        var greenFrac = rgb_color.green || 0.0;
+            #        var blueFrac = rgb_color.blue || 0.0;
+            #        var red = Math.floor(redFrac * 255);
+            #        var green = Math.floor(greenFrac * 255);
+            #        var blue = Math.floor(blueFrac * 255);
+            #
+            #        if (!('alpha' in rgb_color)) {
+            #           return rgbToCssColor_(red, green, blue);
+            #        }
+            #
+            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+            #        var rgbParams = [red, green, blue].join(',');
+            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+            #     };
+            #
+            #     var rgbToCssColor_ = function(red, green, blue) {
+            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+            #       var hexString = rgbNumber.toString(16);
+            #       var missingZeros = 6 - hexString.length;
+            #       var resultBuilder = ['#'];
+            #       for (var i = 0; i &lt; missingZeros; i++) {
+            #          resultBuilder.push('0');
+            #       }
+            #       resultBuilder.push(hexString);
+            #       return resultBuilder.join('');
+            #     };
+            #
+            #     // ...
+          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+              # the final pixel color is defined by the equation:
+              #
+              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+              #
+              # This means that a value of 1.0 corresponds to a solid color, whereas
+              # a value of 0.0 corresponds to a completely transparent color. This
+              # uses a wrapper message rather than a simple float scalar so that it is
+              # possible to distinguish between a default value and the value being unset.
+              # If omitted, this color object is to be rendered as a solid color
+              # (as if the alpha value had been explicitly given with a value of 1.0).
+          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+        },
       },
       "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
       "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -57517,14 +120762,14 @@
           #
           #      static Color* toProto(UIColor* color) {
           #          CGFloat red, green, blue, alpha;
-          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
           #            return nil;
           #          }
           #          Color* result = [[Color alloc] init];
           #          [result setRed:red];
           #          [result setGreen:green];
           #          [result setBlue:blue];
-          #          if (alpha <= 0.9999) {
+          #          if (alpha &lt;= 0.9999) {
           #            [result setAlpha:floatWrapperWithValue(alpha)];
           #          }
           #          [result autorelease];
@@ -57554,11 +120799,11 @@
           #     };
           #
           #     var rgbToCssColor_ = function(red, green, blue) {
-          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
           #       var hexString = rgbNumber.toString(16);
           #       var missingZeros = 6 - hexString.length;
           #       var resultBuilder = ['#'];
-          #       for (var i = 0; i < missingZeros; i++) {
+          #       for (var i = 0; i &lt; missingZeros; i++) {
           #          resultBuilder.push('0');
           #       }
           #       resultBuilder.push(hexString);
@@ -57654,14 +120899,14 @@
               #
               #      static Color* toProto(UIColor* color) {
               #          CGFloat red, green, blue, alpha;
-              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
               #            return nil;
               #          }
               #          Color* result = [[Color alloc] init];
               #          [result setRed:red];
               #          [result setGreen:green];
               #          [result setBlue:blue];
-              #          if (alpha <= 0.9999) {
+              #          if (alpha &lt;= 0.9999) {
               #            [result setAlpha:floatWrapperWithValue(alpha)];
               #          }
               #          [result autorelease];
@@ -57691,11 +120936,11 @@
               #     };
               #
               #     var rgbToCssColor_ = function(red, green, blue) {
-              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
               #       var hexString = rgbNumber.toString(16);
               #       var missingZeros = 6 - hexString.length;
               #       var resultBuilder = ['#'];
-              #       for (var i = 0; i < missingZeros; i++) {
+              #       for (var i = 0; i &lt; missingZeros; i++) {
               #          resultBuilder.push('0');
               #       }
               #       resultBuilder.push(hexString);
@@ -57720,284 +120965,144 @@
           },
           "width": 42, # The width of the border, in pixels.
               # Deprecated; the width is determined by the "style" field.
-          "style": "A String", # The style of the border.
-        },
-        "right": { # A border along a cell. # The right border of the cell.
-          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-              # for simplicity of conversion to/from color representations in various
-              # languages over compactness; for example, the fields of this representation
-              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-              # method in iOS; and, with just a little work, it can be easily formatted into
-              # a CSS "rgba()" string in JavaScript, as well.
-              #
-              # Note: this proto does not carry information about the absolute color space
-              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-              # space.
-              #
-              # Example (Java):
-              #
-              #      import com.google.type.Color;
-              #
-              #      // ...
-              #      public static java.awt.Color fromProto(Color protocolor) {
-              #        float alpha = protocolor.hasAlpha()
-              #            ? protocolor.getAlpha().getValue()
-              #            : 1.0;
-              #
-              #        return new java.awt.Color(
-              #            protocolor.getRed(),
-              #            protocolor.getGreen(),
-              #            protocolor.getBlue(),
-              #            alpha);
-              #      }
-              #
-              #      public static Color toProto(java.awt.Color color) {
-              #        float red = (float) color.getRed();
-              #        float green = (float) color.getGreen();
-              #        float blue = (float) color.getBlue();
-              #        float denominator = 255.0;
-              #        Color.Builder resultBuilder =
-              #            Color
-              #                .newBuilder()
-              #                .setRed(red / denominator)
-              #                .setGreen(green / denominator)
-              #                .setBlue(blue / denominator);
-              #        int alpha = color.getAlpha();
-              #        if (alpha != 255) {
-              #          result.setAlpha(
-              #              FloatValue
-              #                  .newBuilder()
-              #                  .setValue(((float) alpha) / denominator)
-              #                  .build());
-              #        }
-              #        return resultBuilder.build();
-              #      }
-              #      // ...
-              #
-              # Example (iOS / Obj-C):
-              #
-              #      // ...
-              #      static UIColor* fromProto(Color* protocolor) {
-              #         float red = [protocolor red];
-              #         float green = [protocolor green];
-              #         float blue = [protocolor blue];
-              #         FloatValue* alpha_wrapper = [protocolor alpha];
-              #         float alpha = 1.0;
-              #         if (alpha_wrapper != nil) {
-              #           alpha = [alpha_wrapper value];
-              #         }
-              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-              #      }
-              #
-              #      static Color* toProto(UIColor* color) {
-              #          CGFloat red, green, blue, alpha;
-              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-              #            return nil;
-              #          }
-              #          Color* result = [[Color alloc] init];
-              #          [result setRed:red];
-              #          [result setGreen:green];
-              #          [result setBlue:blue];
-              #          if (alpha <= 0.9999) {
-              #            [result setAlpha:floatWrapperWithValue(alpha)];
-              #          }
-              #          [result autorelease];
-              #          return result;
-              #     }
-              #     // ...
-              #
-              #  Example (JavaScript):
-              #
-              #     // ...
-              #
-              #     var protoToCssColor = function(rgb_color) {
-              #        var redFrac = rgb_color.red || 0.0;
-              #        var greenFrac = rgb_color.green || 0.0;
-              #        var blueFrac = rgb_color.blue || 0.0;
-              #        var red = Math.floor(redFrac * 255);
-              #        var green = Math.floor(greenFrac * 255);
-              #        var blue = Math.floor(blueFrac * 255);
-              #
-              #        if (!('alpha' in rgb_color)) {
-              #           return rgbToCssColor_(red, green, blue);
-              #        }
-              #
-              #        var alphaFrac = rgb_color.alpha.value || 0.0;
-              #        var rgbParams = [red, green, blue].join(',');
-              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-              #     };
-              #
-              #     var rgbToCssColor_ = function(red, green, blue) {
-              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-              #       var hexString = rgbNumber.toString(16);
-              #       var missingZeros = 6 - hexString.length;
-              #       var resultBuilder = ['#'];
-              #       for (var i = 0; i < missingZeros; i++) {
-              #          resultBuilder.push('0');
-              #       }
-              #       resultBuilder.push(hexString);
-              #       return resultBuilder.join('');
-              #     };
-              #
-              #     // ...
-            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                # the final pixel color is defined by the equation:
+          "colorStyle": { # A color value. # The color of the border.
+              # If color is also set, this field takes precedence.
+            "themeColor": "A String", # Theme color.
+            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
                 #
-                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
                 #
-                # This means that a value of 1.0 corresponds to a solid color, whereas
-                # a value of 0.0 corresponds to a completely transparent color. This
-                # uses a wrapper message rather than a simple float scalar so that it is
-                # possible to distinguish between a default value and the value being unset.
-                # If omitted, this color object is to be rendered as a solid color
-                # (as if the alpha value had been explicitly given with a value of 1.0).
-            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
           },
-          "width": 42, # The width of the border, in pixels.
-              # Deprecated; the width is determined by the "style" field.
-          "style": "A String", # The style of the border.
-        },
-        "bottom": { # A border along a cell. # The bottom border of the cell.
-          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-              # for simplicity of conversion to/from color representations in various
-              # languages over compactness; for example, the fields of this representation
-              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-              # method in iOS; and, with just a little work, it can be easily formatted into
-              # a CSS "rgba()" string in JavaScript, as well.
-              #
-              # Note: this proto does not carry information about the absolute color space
-              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-              # space.
-              #
-              # Example (Java):
-              #
-              #      import com.google.type.Color;
-              #
-              #      // ...
-              #      public static java.awt.Color fromProto(Color protocolor) {
-              #        float alpha = protocolor.hasAlpha()
-              #            ? protocolor.getAlpha().getValue()
-              #            : 1.0;
-              #
-              #        return new java.awt.Color(
-              #            protocolor.getRed(),
-              #            protocolor.getGreen(),
-              #            protocolor.getBlue(),
-              #            alpha);
-              #      }
-              #
-              #      public static Color toProto(java.awt.Color color) {
-              #        float red = (float) color.getRed();
-              #        float green = (float) color.getGreen();
-              #        float blue = (float) color.getBlue();
-              #        float denominator = 255.0;
-              #        Color.Builder resultBuilder =
-              #            Color
-              #                .newBuilder()
-              #                .setRed(red / denominator)
-              #                .setGreen(green / denominator)
-              #                .setBlue(blue / denominator);
-              #        int alpha = color.getAlpha();
-              #        if (alpha != 255) {
-              #          result.setAlpha(
-              #              FloatValue
-              #                  .newBuilder()
-              #                  .setValue(((float) alpha) / denominator)
-              #                  .build());
-              #        }
-              #        return resultBuilder.build();
-              #      }
-              #      // ...
-              #
-              # Example (iOS / Obj-C):
-              #
-              #      // ...
-              #      static UIColor* fromProto(Color* protocolor) {
-              #         float red = [protocolor red];
-              #         float green = [protocolor green];
-              #         float blue = [protocolor blue];
-              #         FloatValue* alpha_wrapper = [protocolor alpha];
-              #         float alpha = 1.0;
-              #         if (alpha_wrapper != nil) {
-              #           alpha = [alpha_wrapper value];
-              #         }
-              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-              #      }
-              #
-              #      static Color* toProto(UIColor* color) {
-              #          CGFloat red, green, blue, alpha;
-              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-              #            return nil;
-              #          }
-              #          Color* result = [[Color alloc] init];
-              #          [result setRed:red];
-              #          [result setGreen:green];
-              #          [result setBlue:blue];
-              #          if (alpha <= 0.9999) {
-              #            [result setAlpha:floatWrapperWithValue(alpha)];
-              #          }
-              #          [result autorelease];
-              #          return result;
-              #     }
-              #     // ...
-              #
-              #  Example (JavaScript):
-              #
-              #     // ...
-              #
-              #     var protoToCssColor = function(rgb_color) {
-              #        var redFrac = rgb_color.red || 0.0;
-              #        var greenFrac = rgb_color.green || 0.0;
-              #        var blueFrac = rgb_color.blue || 0.0;
-              #        var red = Math.floor(redFrac * 255);
-              #        var green = Math.floor(greenFrac * 255);
-              #        var blue = Math.floor(blueFrac * 255);
-              #
-              #        if (!('alpha' in rgb_color)) {
-              #           return rgbToCssColor_(red, green, blue);
-              #        }
-              #
-              #        var alphaFrac = rgb_color.alpha.value || 0.0;
-              #        var rgbParams = [red, green, blue].join(',');
-              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-              #     };
-              #
-              #     var rgbToCssColor_ = function(red, green, blue) {
-              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-              #       var hexString = rgbNumber.toString(16);
-              #       var missingZeros = 6 - hexString.length;
-              #       var resultBuilder = ['#'];
-              #       for (var i = 0; i < missingZeros; i++) {
-              #          resultBuilder.push('0');
-              #       }
-              #       resultBuilder.push(hexString);
-              #       return resultBuilder.join('');
-              #     };
-              #
-              #     // ...
-            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                # the final pixel color is defined by the equation:
-                #
-                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                #
-                # This means that a value of 1.0 corresponds to a solid color, whereas
-                # a value of 0.0 corresponds to a completely transparent color. This
-                # uses a wrapper message rather than a simple float scalar so that it is
-                # possible to distinguish between a default value and the value being unset.
-                # If omitted, this color object is to be rendered as a solid color
-                # (as if the alpha value had been explicitly given with a value of 1.0).
-            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-          },
-          "width": 42, # The width of the border, in pixels.
-              # Deprecated; the width is determined by the "style" field.
           "style": "A String", # The style of the border.
         },
         "left": { # A border along a cell. # The left border of the cell.
@@ -58071,14 +121176,14 @@
               #
               #      static Color* toProto(UIColor* color) {
               #          CGFloat red, green, blue, alpha;
-              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
               #            return nil;
               #          }
               #          Color* result = [[Color alloc] init];
               #          [result setRed:red];
               #          [result setGreen:green];
               #          [result setBlue:blue];
-              #          if (alpha <= 0.9999) {
+              #          if (alpha &lt;= 0.9999) {
               #            [result setAlpha:floatWrapperWithValue(alpha)];
               #          }
               #          [result autorelease];
@@ -58108,11 +121213,11 @@
               #     };
               #
               #     var rgbToCssColor_ = function(red, green, blue) {
-              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
               #       var hexString = rgbNumber.toString(16);
               #       var missingZeros = 6 - hexString.length;
               #       var resultBuilder = ['#'];
-              #       for (var i = 0; i < missingZeros; i++) {
+              #       for (var i = 0; i &lt; missingZeros; i++) {
               #          resultBuilder.push('0');
               #       }
               #       resultBuilder.push(hexString);
@@ -58137,6 +121242,698 @@
           },
           "width": 42, # The width of the border, in pixels.
               # Deprecated; the width is determined by the "style" field.
+          "colorStyle": { # A color value. # The color of the border.
+              # If color is also set, this field takes precedence.
+            "themeColor": "A String", # Theme color.
+            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
+          },
+          "style": "A String", # The style of the border.
+        },
+        "right": { # A border along a cell. # The right border of the cell.
+          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+              # for simplicity of conversion to/from color representations in various
+              # languages over compactness; for example, the fields of this representation
+              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+              # method in iOS; and, with just a little work, it can be easily formatted into
+              # a CSS "rgba()" string in JavaScript, as well.
+              #
+              # Note: this proto does not carry information about the absolute color space
+              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+              # space.
+              #
+              # Example (Java):
+              #
+              #      import com.google.type.Color;
+              #
+              #      // ...
+              #      public static java.awt.Color fromProto(Color protocolor) {
+              #        float alpha = protocolor.hasAlpha()
+              #            ? protocolor.getAlpha().getValue()
+              #            : 1.0;
+              #
+              #        return new java.awt.Color(
+              #            protocolor.getRed(),
+              #            protocolor.getGreen(),
+              #            protocolor.getBlue(),
+              #            alpha);
+              #      }
+              #
+              #      public static Color toProto(java.awt.Color color) {
+              #        float red = (float) color.getRed();
+              #        float green = (float) color.getGreen();
+              #        float blue = (float) color.getBlue();
+              #        float denominator = 255.0;
+              #        Color.Builder resultBuilder =
+              #            Color
+              #                .newBuilder()
+              #                .setRed(red / denominator)
+              #                .setGreen(green / denominator)
+              #                .setBlue(blue / denominator);
+              #        int alpha = color.getAlpha();
+              #        if (alpha != 255) {
+              #          result.setAlpha(
+              #              FloatValue
+              #                  .newBuilder()
+              #                  .setValue(((float) alpha) / denominator)
+              #                  .build());
+              #        }
+              #        return resultBuilder.build();
+              #      }
+              #      // ...
+              #
+              # Example (iOS / Obj-C):
+              #
+              #      // ...
+              #      static UIColor* fromProto(Color* protocolor) {
+              #         float red = [protocolor red];
+              #         float green = [protocolor green];
+              #         float blue = [protocolor blue];
+              #         FloatValue* alpha_wrapper = [protocolor alpha];
+              #         float alpha = 1.0;
+              #         if (alpha_wrapper != nil) {
+              #           alpha = [alpha_wrapper value];
+              #         }
+              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+              #      }
+              #
+              #      static Color* toProto(UIColor* color) {
+              #          CGFloat red, green, blue, alpha;
+              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+              #            return nil;
+              #          }
+              #          Color* result = [[Color alloc] init];
+              #          [result setRed:red];
+              #          [result setGreen:green];
+              #          [result setBlue:blue];
+              #          if (alpha &lt;= 0.9999) {
+              #            [result setAlpha:floatWrapperWithValue(alpha)];
+              #          }
+              #          [result autorelease];
+              #          return result;
+              #     }
+              #     // ...
+              #
+              #  Example (JavaScript):
+              #
+              #     // ...
+              #
+              #     var protoToCssColor = function(rgb_color) {
+              #        var redFrac = rgb_color.red || 0.0;
+              #        var greenFrac = rgb_color.green || 0.0;
+              #        var blueFrac = rgb_color.blue || 0.0;
+              #        var red = Math.floor(redFrac * 255);
+              #        var green = Math.floor(greenFrac * 255);
+              #        var blue = Math.floor(blueFrac * 255);
+              #
+              #        if (!('alpha' in rgb_color)) {
+              #           return rgbToCssColor_(red, green, blue);
+              #        }
+              #
+              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+              #        var rgbParams = [red, green, blue].join(',');
+              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+              #     };
+              #
+              #     var rgbToCssColor_ = function(red, green, blue) {
+              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+              #       var hexString = rgbNumber.toString(16);
+              #       var missingZeros = 6 - hexString.length;
+              #       var resultBuilder = ['#'];
+              #       for (var i = 0; i &lt; missingZeros; i++) {
+              #          resultBuilder.push('0');
+              #       }
+              #       resultBuilder.push(hexString);
+              #       return resultBuilder.join('');
+              #     };
+              #
+              #     // ...
+            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                # the final pixel color is defined by the equation:
+                #
+                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                #
+                # This means that a value of 1.0 corresponds to a solid color, whereas
+                # a value of 0.0 corresponds to a completely transparent color. This
+                # uses a wrapper message rather than a simple float scalar so that it is
+                # possible to distinguish between a default value and the value being unset.
+                # If omitted, this color object is to be rendered as a solid color
+                # (as if the alpha value had been explicitly given with a value of 1.0).
+            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+          },
+          "width": 42, # The width of the border, in pixels.
+              # Deprecated; the width is determined by the "style" field.
+          "colorStyle": { # A color value. # The color of the border.
+              # If color is also set, this field takes precedence.
+            "themeColor": "A String", # Theme color.
+            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
+          },
+          "style": "A String", # The style of the border.
+        },
+        "bottom": { # A border along a cell. # The bottom border of the cell.
+          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+              # for simplicity of conversion to/from color representations in various
+              # languages over compactness; for example, the fields of this representation
+              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+              # method in iOS; and, with just a little work, it can be easily formatted into
+              # a CSS "rgba()" string in JavaScript, as well.
+              #
+              # Note: this proto does not carry information about the absolute color space
+              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+              # space.
+              #
+              # Example (Java):
+              #
+              #      import com.google.type.Color;
+              #
+              #      // ...
+              #      public static java.awt.Color fromProto(Color protocolor) {
+              #        float alpha = protocolor.hasAlpha()
+              #            ? protocolor.getAlpha().getValue()
+              #            : 1.0;
+              #
+              #        return new java.awt.Color(
+              #            protocolor.getRed(),
+              #            protocolor.getGreen(),
+              #            protocolor.getBlue(),
+              #            alpha);
+              #      }
+              #
+              #      public static Color toProto(java.awt.Color color) {
+              #        float red = (float) color.getRed();
+              #        float green = (float) color.getGreen();
+              #        float blue = (float) color.getBlue();
+              #        float denominator = 255.0;
+              #        Color.Builder resultBuilder =
+              #            Color
+              #                .newBuilder()
+              #                .setRed(red / denominator)
+              #                .setGreen(green / denominator)
+              #                .setBlue(blue / denominator);
+              #        int alpha = color.getAlpha();
+              #        if (alpha != 255) {
+              #          result.setAlpha(
+              #              FloatValue
+              #                  .newBuilder()
+              #                  .setValue(((float) alpha) / denominator)
+              #                  .build());
+              #        }
+              #        return resultBuilder.build();
+              #      }
+              #      // ...
+              #
+              # Example (iOS / Obj-C):
+              #
+              #      // ...
+              #      static UIColor* fromProto(Color* protocolor) {
+              #         float red = [protocolor red];
+              #         float green = [protocolor green];
+              #         float blue = [protocolor blue];
+              #         FloatValue* alpha_wrapper = [protocolor alpha];
+              #         float alpha = 1.0;
+              #         if (alpha_wrapper != nil) {
+              #           alpha = [alpha_wrapper value];
+              #         }
+              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+              #      }
+              #
+              #      static Color* toProto(UIColor* color) {
+              #          CGFloat red, green, blue, alpha;
+              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+              #            return nil;
+              #          }
+              #          Color* result = [[Color alloc] init];
+              #          [result setRed:red];
+              #          [result setGreen:green];
+              #          [result setBlue:blue];
+              #          if (alpha &lt;= 0.9999) {
+              #            [result setAlpha:floatWrapperWithValue(alpha)];
+              #          }
+              #          [result autorelease];
+              #          return result;
+              #     }
+              #     // ...
+              #
+              #  Example (JavaScript):
+              #
+              #     // ...
+              #
+              #     var protoToCssColor = function(rgb_color) {
+              #        var redFrac = rgb_color.red || 0.0;
+              #        var greenFrac = rgb_color.green || 0.0;
+              #        var blueFrac = rgb_color.blue || 0.0;
+              #        var red = Math.floor(redFrac * 255);
+              #        var green = Math.floor(greenFrac * 255);
+              #        var blue = Math.floor(blueFrac * 255);
+              #
+              #        if (!('alpha' in rgb_color)) {
+              #           return rgbToCssColor_(red, green, blue);
+              #        }
+              #
+              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+              #        var rgbParams = [red, green, blue].join(',');
+              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+              #     };
+              #
+              #     var rgbToCssColor_ = function(red, green, blue) {
+              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+              #       var hexString = rgbNumber.toString(16);
+              #       var missingZeros = 6 - hexString.length;
+              #       var resultBuilder = ['#'];
+              #       for (var i = 0; i &lt; missingZeros; i++) {
+              #          resultBuilder.push('0');
+              #       }
+              #       resultBuilder.push(hexString);
+              #       return resultBuilder.join('');
+              #     };
+              #
+              #     // ...
+            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                # the final pixel color is defined by the equation:
+                #
+                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                #
+                # This means that a value of 1.0 corresponds to a solid color, whereas
+                # a value of 0.0 corresponds to a completely transparent color. This
+                # uses a wrapper message rather than a simple float scalar so that it is
+                # possible to distinguish between a default value and the value being unset.
+                # If omitted, this color object is to be rendered as a solid color
+                # (as if the alpha value had been explicitly given with a value of 1.0).
+            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+          },
+          "width": 42, # The width of the border, in pixels.
+              # Deprecated; the width is determined by the "style" field.
+          "colorStyle": { # A color value. # The color of the border.
+              # If color is also set, this field takes precedence.
+            "themeColor": "A String", # Theme color.
+            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
+          },
           "style": "A String", # The style of the border.
         },
       },
@@ -58234,14 +122031,14 @@
             #
             #      static Color* toProto(UIColor* color) {
             #          CGFloat red, green, blue, alpha;
-            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
             #            return nil;
             #          }
             #          Color* result = [[Color alloc] init];
             #          [result setRed:red];
             #          [result setGreen:green];
             #          [result setBlue:blue];
-            #          if (alpha <= 0.9999) {
+            #          if (alpha &lt;= 0.9999) {
             #            [result setAlpha:floatWrapperWithValue(alpha)];
             #          }
             #          [result autorelease];
@@ -58271,11 +122068,11 @@
             #     };
             #
             #     var rgbToCssColor_ = function(red, green, blue) {
-            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
             #       var hexString = rgbNumber.toString(16);
             #       var missingZeros = 6 - hexString.length;
             #       var resultBuilder = ['#'];
-            #       for (var i = 0; i < missingZeros; i++) {
+            #       for (var i = 0; i &lt; missingZeros; i++) {
             #          resultBuilder.push('0');
             #       }
             #       resultBuilder.push(hexString);
@@ -58299,6 +122096,144 @@
           "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
         },
         "bold": True or False, # True if the text is bold.
+        "foregroundColorStyle": { # A color value. # The foreground color of the text.
+            # If foreground_color is also set, this field takes precedence.
+          "themeColor": "A String", # Theme color.
+          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+              # for simplicity of conversion to/from color representations in various
+              # languages over compactness; for example, the fields of this representation
+              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+              # method in iOS; and, with just a little work, it can be easily formatted into
+              # a CSS "rgba()" string in JavaScript, as well.
+              #
+              # Note: this proto does not carry information about the absolute color space
+              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+              # space.
+              #
+              # Example (Java):
+              #
+              #      import com.google.type.Color;
+              #
+              #      // ...
+              #      public static java.awt.Color fromProto(Color protocolor) {
+              #        float alpha = protocolor.hasAlpha()
+              #            ? protocolor.getAlpha().getValue()
+              #            : 1.0;
+              #
+              #        return new java.awt.Color(
+              #            protocolor.getRed(),
+              #            protocolor.getGreen(),
+              #            protocolor.getBlue(),
+              #            alpha);
+              #      }
+              #
+              #      public static Color toProto(java.awt.Color color) {
+              #        float red = (float) color.getRed();
+              #        float green = (float) color.getGreen();
+              #        float blue = (float) color.getBlue();
+              #        float denominator = 255.0;
+              #        Color.Builder resultBuilder =
+              #            Color
+              #                .newBuilder()
+              #                .setRed(red / denominator)
+              #                .setGreen(green / denominator)
+              #                .setBlue(blue / denominator);
+              #        int alpha = color.getAlpha();
+              #        if (alpha != 255) {
+              #          result.setAlpha(
+              #              FloatValue
+              #                  .newBuilder()
+              #                  .setValue(((float) alpha) / denominator)
+              #                  .build());
+              #        }
+              #        return resultBuilder.build();
+              #      }
+              #      // ...
+              #
+              # Example (iOS / Obj-C):
+              #
+              #      // ...
+              #      static UIColor* fromProto(Color* protocolor) {
+              #         float red = [protocolor red];
+              #         float green = [protocolor green];
+              #         float blue = [protocolor blue];
+              #         FloatValue* alpha_wrapper = [protocolor alpha];
+              #         float alpha = 1.0;
+              #         if (alpha_wrapper != nil) {
+              #           alpha = [alpha_wrapper value];
+              #         }
+              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+              #      }
+              #
+              #      static Color* toProto(UIColor* color) {
+              #          CGFloat red, green, blue, alpha;
+              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+              #            return nil;
+              #          }
+              #          Color* result = [[Color alloc] init];
+              #          [result setRed:red];
+              #          [result setGreen:green];
+              #          [result setBlue:blue];
+              #          if (alpha &lt;= 0.9999) {
+              #            [result setAlpha:floatWrapperWithValue(alpha)];
+              #          }
+              #          [result autorelease];
+              #          return result;
+              #     }
+              #     // ...
+              #
+              #  Example (JavaScript):
+              #
+              #     // ...
+              #
+              #     var protoToCssColor = function(rgb_color) {
+              #        var redFrac = rgb_color.red || 0.0;
+              #        var greenFrac = rgb_color.green || 0.0;
+              #        var blueFrac = rgb_color.blue || 0.0;
+              #        var red = Math.floor(redFrac * 255);
+              #        var green = Math.floor(greenFrac * 255);
+              #        var blue = Math.floor(blueFrac * 255);
+              #
+              #        if (!('alpha' in rgb_color)) {
+              #           return rgbToCssColor_(red, green, blue);
+              #        }
+              #
+              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+              #        var rgbParams = [red, green, blue].join(',');
+              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+              #     };
+              #
+              #     var rgbToCssColor_ = function(red, green, blue) {
+              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+              #       var hexString = rgbNumber.toString(16);
+              #       var missingZeros = 6 - hexString.length;
+              #       var resultBuilder = ['#'];
+              #       for (var i = 0; i &lt; missingZeros; i++) {
+              #          resultBuilder.push('0');
+              #       }
+              #       resultBuilder.push(hexString);
+              #       return resultBuilder.join('');
+              #     };
+              #
+              #     // ...
+            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                # the final pixel color is defined by the equation:
+                #
+                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                #
+                # This means that a value of 1.0 corresponds to a solid color, whereas
+                # a value of 0.0 corresponds to a completely transparent color. This
+                # uses a wrapper message rather than a simple float scalar so that it is
+                # possible to distinguish between a default value and the value being unset.
+                # If omitted, this color object is to be rendered as a solid color
+                # (as if the alpha value had been explicitly given with a value of 1.0).
+            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+          },
+        },
         "strikethrough": True or False, # True if the text has a strikethrough.
         "fontFamily": "A String", # The font family.
         "fontSize": 42, # The size of the font.
@@ -58307,10 +122242,9 @@
       },
       "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
     },
-    "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
     "iterativeCalculationSettings": { # Settings to control how circular dependencies are resolved with iterative # Determines whether and how circular references are resolved with iterative
-        # calculation.  Absence of this field means that circular references will
-        # result in calculation errors.
+        # calculation.  Absence of this field means that circular references result
+        # in calculation errors.
         # calculation.
       "convergenceThreshold": 3.14, # When iterative calculation is enabled and successive results differ by
           # less than this threshold value, the calculation rounds stop.
@@ -58359,8 +122293,8 @@
             "sheetId": 42, # The sheet this span is on.
             "dimension": "A String", # The dimension of the span.
           },
-          "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
           "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+          "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
         },
         "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
             # specified.
@@ -58370,1387 +122304,30 @@
     ],
     "sheets": [ # The sheets that are part of a spreadsheet.
       { # A sheet in a spreadsheet.
-        "conditionalFormats": [ # The conditional format rules in this sheet.
-          { # A rule describing a conditional format.
-            "ranges": [ # The ranges that are formatted if the condition is true.
-                # All the ranges must be on the same grid.
-              { # A range on a sheet.
-                  # All indexes are zero-based.
-                  # Indexes are half open, e.g the start index is inclusive
-                  # and the end index is exclusive -- [start_index, end_index).
-                  # Missing indexes indicate the range is unbounded on that side.
-                  #
-                  # For example, if `"Sheet1"` is sheet ID 0, then:
-                  #
-                  #   `Sheet1!A1:A1 == sheet_id: 0,
-                  #                   start_row_index: 0, end_row_index: 1,
-                  #                   start_column_index: 0, end_column_index: 1`
-                  #
-                  #   `Sheet1!A3:B4 == sheet_id: 0,
-                  #                   start_row_index: 2, end_row_index: 4,
-                  #                   start_column_index: 0, end_column_index: 2`
-                  #
-                  #   `Sheet1!A:B == sheet_id: 0,
-                  #                 start_column_index: 0, end_column_index: 2`
-                  #
-                  #   `Sheet1!A5:B == sheet_id: 0,
-                  #                  start_row_index: 4,
-                  #                  start_column_index: 0, end_column_index: 2`
-                  #
-                  #   `Sheet1 == sheet_id:0`
-                  #
-                  # The start index must always be less than or equal to the end index.
-                  # If the start index equals the end index, then the range is empty.
-                  # Empty ranges are typically not meaningful and are usually rendered in the
-                  # UI as `#REF!`.
-                "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-                "sheetId": 42, # The sheet this range is on.
-                "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-              },
-            ],
-            "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
-              "condition": { # A condition that can evaluate to true or false. # The condition of the rule. If the condition evaluates to true,
-                  # the format is applied.
-                  # BooleanConditions are used by conditional formatting,
-                  # data validation, and the criteria in filters.
-                "values": [ # The values of the condition. The number of supported values depends
-                    # on the condition type.  Some support zero values,
-                    # others one or two values,
-                    # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
-                  { # The value of the condition.
-                    "relativeDate": "A String", # A relative date (based on the current date).
-                        # Valid only if the type is
-                        # DATE_BEFORE,
-                        # DATE_AFTER,
-                        # DATE_ON_OR_BEFORE or
-                        # DATE_ON_OR_AFTER.
-                        #
-                        # Relative dates are not supported in data validation.
-                        # They are supported only in conditional formatting and
-                        # conditional filters.
-                    "userEnteredValue": "A String", # A value the condition is based on.
-                        # The value is parsed as if the user typed into a cell.
-                        # Formulas are supported (and must begin with an `=` or a '+').
-                  },
-                ],
-                "type": "A String", # The type of condition.
-              },
-              "format": { # The format of a cell. # The format to apply.
-                  # Conditional formatting can only apply a subset of formatting:
-                  # bold, italic,
-                  # strikethrough,
-                  # foreground color &
-                  # background color.
-                "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
-                  "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
-                      # the user's locale will be used if necessary for the given type.
-                      # See the [Date and Number Formats guide](/sheets/api/guides/formats) for
-                      # more information about the supported patterns.
-                  "type": "A String", # The type of the number format.
-                      # When writing, this field must be set.
-                },
-                "textDirection": "A String", # The direction of the text in the cell.
-                "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                    # When updating padding, every field must be specified.
-                  "top": 42, # The top padding of the cell.
-                  "left": 42, # The left padding of the cell.
-                  "right": 42, # The right padding of the cell.
-                  "bottom": 42, # The bottom padding of the cell.
-                },
-                "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
-                "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                },
-                "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
-                "borders": { # The borders of the cell. # The borders of the cell.
-                  "top": { # A border along a cell. # The top border of the cell.
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                    },
-                    "width": 42, # The width of the border, in pixels.
-                        # Deprecated; the width is determined by the "style" field.
-                    "style": "A String", # The style of the border.
-                  },
-                  "right": { # A border along a cell. # The right border of the cell.
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                    },
-                    "width": 42, # The width of the border, in pixels.
-                        # Deprecated; the width is determined by the "style" field.
-                    "style": "A String", # The style of the border.
-                  },
-                  "bottom": { # A border along a cell. # The bottom border of the cell.
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                    },
-                    "width": 42, # The width of the border, in pixels.
-                        # Deprecated; the width is determined by the "style" field.
-                    "style": "A String", # The style of the border.
-                  },
-                  "left": { # A border along a cell. # The left border of the cell.
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                    },
-                    "width": 42, # The width of the border, in pixels.
-                        # Deprecated; the width is determined by the "style" field.
-                    "style": "A String", # The style of the border.
-                  },
-                },
-                "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
-                  "angle": 42, # The angle between the standard orientation and the desired orientation.
-                      # Measured in degrees. Valid values are between -90 and 90. Positive
-                      # angles are angled upwards, negative are angled downwards.
-                      #
-                      # Note: For LTR text direction positive angles are in the
-                      # counterclockwise direction, whereas for RTL they are in the clockwise
-                      # direction
-                  "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
-                      # characters is unchanged.
-                      # For example:
-                      #
-                      #     | V |
-                      #     | e |
-                      #     | r |
-                      #     | t |
-                      #     | i |
-                      #     | c |
-                      #     | a |
-                      #     | l |
-                },
-                "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
-                "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
-                    # Absent values indicate that the field isn't specified.
-                  "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
-                        #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                        #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                  },
-                  "bold": True or False, # True if the text is bold.
-                  "strikethrough": True or False, # True if the text has a strikethrough.
-                  "fontFamily": "A String", # The font family.
-                  "fontSize": 42, # The size of the font.
-                  "italic": True or False, # True if the text is italicized.
-                  "underline": True or False, # True if the text is underlined.
-                },
-                "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
-              },
-            },
-            "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule.
-                # the interpolation points listed. The format of a cell will vary
-                # based on its contents as compared to the values of the interpolation
-                # points.
-              "maxpoint": { # A single interpolation point on a gradient conditional format. # The final interpolation point.
-                  # These pin the gradient color scale according to the color,
-                  # type and value chosen.
-                "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                },
-                "type": "A String", # How the value should be interpreted.
-                "value": "A String", # The value this interpolation point uses.  May be a formula.
-                    # Unused if type is MIN or
-                    # MAX.
-              },
-              "midpoint": { # A single interpolation point on a gradient conditional format. # An optional midway interpolation point.
-                  # These pin the gradient color scale according to the color,
-                  # type and value chosen.
-                "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                },
-                "type": "A String", # How the value should be interpreted.
-                "value": "A String", # The value this interpolation point uses.  May be a formula.
-                    # Unused if type is MIN or
-                    # MAX.
-              },
-              "minpoint": { # A single interpolation point on a gradient conditional format. # The starting interpolation point.
-                  # These pin the gradient color scale according to the color,
-                  # type and value chosen.
-                "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                },
-                "type": "A String", # How the value should be interpreted.
-                "value": "A String", # The value this interpolation point uses.  May be a formula.
-                    # Unused if type is MIN or
-                    # MAX.
-              },
+        "columnGroups": [ # All column groups on this sheet, ordered by increasing range start index,
+            # then by group depth.
+          { # A group over an interval of rows or columns on a sheet, which can contain or
+              # be contained within other groups. A group can be collapsed or expanded as a
+              # unit on the sheet.
+            "depth": 42, # The depth of the group, representing how many groups have a range that
+                # wholly contains the range of this group.
+            "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
+                # collapsed if an overlapping group at a shallower depth is expanded.
+                #
+                # A true value does not imply that all dimensions within the group are
+                # hidden, since a dimension's visibility can change independently from this
+                # group property. However, when this property is updated, all dimensions
+                # within it are set to hidden if this field is true, or set to visible if
+                # this field is false.
+            "range": { # A range along a single dimension on a sheet. # The range over which this group exists.
+                # All indexes are zero-based.
+                # Indexes are half open: the start index is inclusive
+                # and the end index is exclusive.
+                # Missing indexes indicate the range is unbounded on that side.
+              "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
+              "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
+              "sheetId": 42, # The sheet this span is on.
+              "dimension": "A String", # The dimension of the span.
             },
           },
         ],
@@ -59876,14 +122453,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -59913,11 +122490,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -59940,12 +122517,12 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first
-                  # row or column will be filled with this color and the colors will
-                  # alternate between first_band_color and second_band_color starting
-                  # from the second row or column. Otherwise, the first row or column will be
-                  # filled with first_band_color and the colors will proceed to alternate
-                  # as they normally would.
+              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would.
                   # for simplicity of conversion to/from color representations in various
                   # languages over compactness; for example, the fields of this representation
                   # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -60015,14 +122592,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -60052,11 +122629,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -60079,142 +122656,426 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
-                  # row or column will be filled with either first_band_color or
+              "footerColorStyle": { # A color value. # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
                   # second_band_color, depending on the color of the previous row or
                   # column.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
+                  # If footer_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
                     #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
                     #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "headerColorStyle": { # A color value. # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would. If header_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "secondBandColorStyle": { # A color value. # The second color that is alternating. (Required)
+                  # If second_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
               },
               "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required)
                   # for simplicity of conversion to/from color representations in various
@@ -60286,14 +123147,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -60323,11 +123184,286 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "firstBandColorStyle": { # A color value. # The first color that is alternating. (Required)
+                  # If first_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
+                  # second_band_color, depending on the color of the previous row or
+                  # column.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -60436,14 +123572,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -60473,11 +123609,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -60500,12 +123636,12 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first
-                  # row or column will be filled with this color and the colors will
-                  # alternate between first_band_color and second_band_color starting
-                  # from the second row or column. Otherwise, the first row or column will be
-                  # filled with first_band_color and the colors will proceed to alternate
-                  # as they normally would.
+              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would.
                   # for simplicity of conversion to/from color representations in various
                   # languages over compactness; for example, the fields of this representation
                   # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -60575,14 +123711,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -60612,11 +123748,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -60639,142 +123775,426 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
-                  # row or column will be filled with either first_band_color or
+              "footerColorStyle": { # A color value. # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
                   # second_band_color, depending on the color of the previous row or
                   # column.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
+                  # If footer_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
                     #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
                     #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "headerColorStyle": { # A color value. # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would. If header_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "secondBandColorStyle": { # A color value. # The second color that is alternating. (Required)
+                  # If second_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
               },
               "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required)
                   # for simplicity of conversion to/from color representations in various
@@ -60846,14 +124266,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -60883,11 +124303,286 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "firstBandColorStyle": { # A color value. # The first color that is alternating. (Required)
+                  # If first_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
+                  # second_band_color, depending on the color of the previous row or
+                  # column.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -60990,400 +124685,282 @@
           "sortSpecs": [ # The sort order per column. Later specifications are used when values
               # are equal in the earlier specifications.
             { # A sort order associated with a specific column or row.
-              "sortOrder": "A String", # The order data should be sorted.
-              "dimensionIndex": 42, # The dimension the sort should be applied to.
-            },
-          ],
-          "criteria": { # The criteria for showing/hiding values per column.
-              # The map's key is the column index, and the value is the criteria for
-              # that column.
-            "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
-              "hiddenValues": [ # Values that should be hidden.
-                "A String",
-              ],
-              "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
-                  # (This does not override hiddenValues -- if a value is listed there,
-                  #  it will still be hidden.)
-                  # BooleanConditions are used by conditional formatting,
-                  # data validation, and the criteria in filters.
-                "values": [ # The values of the condition. The number of supported values depends
-                    # on the condition type.  Some support zero values,
-                    # others one or two values,
-                    # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
-                  { # The value of the condition.
-                    "relativeDate": "A String", # A relative date (based on the current date).
-                        # Valid only if the type is
-                        # DATE_BEFORE,
-                        # DATE_AFTER,
-                        # DATE_ON_OR_BEFORE or
-                        # DATE_ON_OR_AFTER.
-                        #
-                        # Relative dates are not supported in data validation.
-                        # They are supported only in conditional formatting and
-                        # conditional filters.
-                    "userEnteredValue": "A String", # A value the condition is based on.
-                        # The value is parsed as if the user typed into a cell.
-                        # Formulas are supported (and must begin with an `=` or a '+').
-                  },
-                ],
-                "type": "A String", # The type of condition.
+              "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to sort by; cells with this foreground color are
+                  # sorted to the top. Mutually exclusive with background_color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-            },
-          },
-        },
-        "developerMetadata": [ # The developer metadata associated with a sheet.
-          { # Developer metadata associated with a location or object in a spreadsheet.
-              # Developer metadata may be used to associate arbitrary data with various
-              # parts of a spreadsheet and will remain associated at those locations as they
-              # move around and the spreadsheet is edited.  For example, if developer
-              # metadata is associated with row 5 and another row is then subsequently
-              # inserted above row 5, that original metadata will still be associated with
-              # the row it was first associated with (what is now row 6). If the associated
-              # object is deleted its metadata is deleted too.
-            "metadataId": 42, # The spreadsheet-scoped unique ID that identifies the metadata. IDs may be
-                # specified when metadata is created, otherwise one will be randomly
-                # generated and assigned. Must be positive.
-            "metadataValue": "A String", # Data associated with the metadata's key.
-            "location": { # A location where metadata may be associated in a spreadsheet. # The location where the metadata is associated.
-              "locationType": "A String", # The type of location this object represents.  This field is read-only.
-              "dimensionRange": { # A range along a single dimension on a sheet. # Represents the row or column when metadata is associated with
-                  # a dimension. The specified DimensionRange must represent a single row
-                  # or column; it cannot be unbounded or span multiple rows or columns.
-                  # All indexes are zero-based.
-                  # Indexes are half open: the start index is inclusive
-                  # and the end index is exclusive.
-                  # Missing indexes indicate the range is unbounded on that side.
-                "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
-                "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
-                "sheetId": 42, # The sheet this span is on.
-                "dimension": "A String", # The dimension of the span.
+              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to sort by; cells with this fill color are sorted
+                  # to the top. Mutually exclusive with foreground_color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
-              "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
-            },
-            "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
-                # specified.
-            "metadataKey": "A String", # The metadata key. There may be multiple metadata in a spreadsheet with the
-                # same key.  Developer metadata must always have a key specified.
-          },
-        ],
-        "columnGroups": [ # All column groups on this sheet, ordered by increasing range start index,
-            # then by group depth.
-          { # A group over an interval of rows or columns on a sheet, which can contain or
-              # be contained within other groups. A group can be collapsed or expanded as a
-              # unit on the sheet.
-            "range": { # A range along a single dimension on a sheet. # The range over which this group exists.
-                # All indexes are zero-based.
-                # Indexes are half open: the start index is inclusive
-                # and the end index is exclusive.
-                # Missing indexes indicate the range is unbounded on that side.
-              "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
-              "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
-              "sheetId": 42, # The sheet this span is on.
-              "dimension": "A String", # The dimension of the span.
-            },
-            "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
-                # collapsed if an overlapping group at a shallower depth is expanded.
-                #
-                # A true value does not imply that all dimensions within the group are
-                # hidden, since a dimension's visibility can change independently from this
-                # group property. However, when this property is updated, all dimensions
-                # within it are set to hidden if this field is true, or set to visible if
-                # this field is false.
-            "depth": 42, # The depth of the group, representing how many groups have a range that
-                # wholly contains the range of this group.
-          },
-        ],
-        "properties": { # Properties of a sheet. # The properties of the sheet.
-          "sheetType": "A String", # The type of sheet. Defaults to GRID.
-              # This field cannot be changed once set.
-          "index": 42, # The index of the sheet within the spreadsheet.
-              # When adding or updating sheet properties, if this field
-              # is excluded then the sheet is added or moved to the end
-              # of the sheet list. When updating sheet indices or inserting
-              # sheets, movement is considered in "before the move" indexes.
-              # For example, if there were 3 sheets (S1, S2, S3) in order to
-              # move S1 ahead of S2 the index would have to be set to 2. A sheet
-              # index update request is ignored if the requested index is
-              # identical to the sheets current index or if the requested new
-              # index is equal to the current sheet index + 1.
-          "title": "A String", # The name of the sheet.
-          "gridProperties": { # Properties of a grid. # Additional properties of the sheet if this sheet is a grid.
-              # (If the sheet is an object sheet, containing a chart or image, then
-              # this field will be absent.)
-              # When writing it is an error to set any grid properties on non-grid sheets.
-            "columnCount": 42, # The number of columns in the grid.
-            "rowGroupControlAfter": True or False, # True if the row grouping control toggle is shown after the group.
-            "columnGroupControlAfter": True or False, # True if the column grouping control toggle is shown after the group.
-            "frozenRowCount": 42, # The number of rows that are frozen in the grid.
-            "frozenColumnCount": 42, # The number of columns that are frozen in the grid.
-            "rowCount": 42, # The number of rows in the grid.
-            "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI.
-          },
-          "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet.
-          "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI.
-              # for simplicity of conversion to/from color representations in various
-              # languages over compactness; for example, the fields of this representation
-              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-              # method in iOS; and, with just a little work, it can be easily formatted into
-              # a CSS "rgba()" string in JavaScript, as well.
-              #
-              # Note: this proto does not carry information about the absolute color space
-              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-              # space.
-              #
-              # Example (Java):
-              #
-              #      import com.google.type.Color;
-              #
-              #      // ...
-              #      public static java.awt.Color fromProto(Color protocolor) {
-              #        float alpha = protocolor.hasAlpha()
-              #            ? protocolor.getAlpha().getValue()
-              #            : 1.0;
-              #
-              #        return new java.awt.Color(
-              #            protocolor.getRed(),
-              #            protocolor.getGreen(),
-              #            protocolor.getBlue(),
-              #            alpha);
-              #      }
-              #
-              #      public static Color toProto(java.awt.Color color) {
-              #        float red = (float) color.getRed();
-              #        float green = (float) color.getGreen();
-              #        float blue = (float) color.getBlue();
-              #        float denominator = 255.0;
-              #        Color.Builder resultBuilder =
-              #            Color
-              #                .newBuilder()
-              #                .setRed(red / denominator)
-              #                .setGreen(green / denominator)
-              #                .setBlue(blue / denominator);
-              #        int alpha = color.getAlpha();
-              #        if (alpha != 255) {
-              #          result.setAlpha(
-              #              FloatValue
-              #                  .newBuilder()
-              #                  .setValue(((float) alpha) / denominator)
-              #                  .build());
-              #        }
-              #        return resultBuilder.build();
-              #      }
-              #      // ...
-              #
-              # Example (iOS / Obj-C):
-              #
-              #      // ...
-              #      static UIColor* fromProto(Color* protocolor) {
-              #         float red = [protocolor red];
-              #         float green = [protocolor green];
-              #         float blue = [protocolor blue];
-              #         FloatValue* alpha_wrapper = [protocolor alpha];
-              #         float alpha = 1.0;
-              #         if (alpha_wrapper != nil) {
-              #           alpha = [alpha_wrapper value];
-              #         }
-              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-              #      }
-              #
-              #      static Color* toProto(UIColor* color) {
-              #          CGFloat red, green, blue, alpha;
-              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-              #            return nil;
-              #          }
-              #          Color* result = [[Color alloc] init];
-              #          [result setRed:red];
-              #          [result setGreen:green];
-              #          [result setBlue:blue];
-              #          if (alpha <= 0.9999) {
-              #            [result setAlpha:floatWrapperWithValue(alpha)];
-              #          }
-              #          [result autorelease];
-              #          return result;
-              #     }
-              #     // ...
-              #
-              #  Example (JavaScript):
-              #
-              #     // ...
-              #
-              #     var protoToCssColor = function(rgb_color) {
-              #        var redFrac = rgb_color.red || 0.0;
-              #        var greenFrac = rgb_color.green || 0.0;
-              #        var blueFrac = rgb_color.blue || 0.0;
-              #        var red = Math.floor(redFrac * 255);
-              #        var green = Math.floor(greenFrac * 255);
-              #        var blue = Math.floor(blueFrac * 255);
-              #
-              #        if (!('alpha' in rgb_color)) {
-              #           return rgbToCssColor_(red, green, blue);
-              #        }
-              #
-              #        var alphaFrac = rgb_color.alpha.value || 0.0;
-              #        var rgbParams = [red, green, blue].join(',');
-              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-              #     };
-              #
-              #     var rgbToCssColor_ = function(red, green, blue) {
-              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-              #       var hexString = rgbNumber.toString(16);
-              #       var missingZeros = 6 - hexString.length;
-              #       var resultBuilder = ['#'];
-              #       for (var i = 0; i < missingZeros; i++) {
-              #          resultBuilder.push('0');
-              #       }
-              #       resultBuilder.push(hexString);
-              #       return resultBuilder.join('');
-              #     };
-              #
-              #     // ...
-            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                # the final pixel color is defined by the equation:
-                #
-                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                #
-                # This means that a value of 1.0 corresponds to a solid color, whereas
-                # a value of 0.0 corresponds to a completely transparent color. This
-                # uses a wrapper message rather than a simple float scalar so that it is
-                # possible to distinguish between a default value and the value being unset.
-                # If omitted, this color object is to be rendered as a solid color
-                # (as if the alpha value had been explicitly given with a value of 1.0).
-            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-          },
-          "hidden": True or False, # True if the sheet is hidden in the UI, false if it's visible.
-          "sheetId": 42, # The ID of the sheet. Must be non-negative.
-              # This field cannot be changed once set.
-        },
-        "filterViews": [ # The filter views in this sheet.
-          { # A filter view.
-            "title": "A String", # The name of the filter view.
-            "namedRangeId": "A String", # The named range this filter view is backed by, if any.
-                #
-                # When writing, only one of range or named_range_id
-                # may be set.
-            "filterViewId": 42, # The ID of the filter view.
-            "range": { # A range on a sheet. # The range this filter view covers.
-                #
-                # When writing, only one of range or named_range_id
-                # may be set.
-                # All indexes are zero-based.
-                # Indexes are half open, e.g the start index is inclusive
-                # and the end index is exclusive -- [start_index, end_index).
-                # Missing indexes indicate the range is unbounded on that side.
-                #
-                # For example, if `"Sheet1"` is sheet ID 0, then:
-                #
-                #   `Sheet1!A1:A1 == sheet_id: 0,
-                #                   start_row_index: 0, end_row_index: 1,
-                #                   start_column_index: 0, end_column_index: 1`
-                #
-                #   `Sheet1!A3:B4 == sheet_id: 0,
-                #                   start_row_index: 2, end_row_index: 4,
-                #                   start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A:B == sheet_id: 0,
-                #                 start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A5:B == sheet_id: 0,
-                #                  start_row_index: 4,
-                #                  start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1 == sheet_id:0`
-                #
-                # The start index must always be less than or equal to the end index.
-                # If the start index equals the end index, then the range is empty.
-                # Empty ranges are typically not meaningful and are usually rendered in the
-                # UI as `#REF!`.
-              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-              "sheetId": 42, # The sheet this range is on.
-              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-            },
-            "sortSpecs": [ # The sort order per column. Later specifications are used when values
-                # are equal in the earlier specifications.
-              { # A sort order associated with a specific column or row.
-                "sortOrder": "A String", # The order data should be sorted.
-                "dimensionIndex": 42, # The dimension the sort should be applied to.
-              },
-            ],
-            "criteria": { # The criteria for showing/hiding values per column.
-                # The map's key is the column index, and the value is the criteria for
-                # that column.
-              "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
-                "hiddenValues": [ # Values that should be hidden.
-                  "A String",
-                ],
-                "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
-                    # (This does not override hiddenValues -- if a value is listed there,
-                    #  it will still be hidden.)
-                    # BooleanConditions are used by conditional formatting,
-                    # data validation, and the criteria in filters.
-                  "values": [ # The values of the condition. The number of supported values depends
-                      # on the condition type.  Some support zero values,
-                      # others one or two values,
-                      # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
-                    { # The value of the condition.
-                      "relativeDate": "A String", # A relative date (based on the current date).
-                          # Valid only if the type is
-                          # DATE_BEFORE,
-                          # DATE_AFTER,
-                          # DATE_ON_OR_BEFORE or
-                          # DATE_ON_OR_AFTER.
-                          #
-                          # Relative dates are not supported in data validation.
-                          # They are supported only in conditional formatting and
-                          # conditional filters.
-                      "userEnteredValue": "A String", # A value the condition is based on.
-                          # The value is parsed as if the user typed into a cell.
-                          # Formulas are supported (and must begin with an `=` or a '+').
-                    },
-                  ],
-                  "type": "A String", # The type of condition.
-                },
-              },
-            },
-          },
-        ],
-        "charts": [ # The specifications of every chart on this sheet.
-          { # A chart embedded in a sheet.
-            "chartId": 42, # The ID of the chart.
-            "position": { # The position of an embedded object such as a chart. # The position of the chart.
-              "newSheet": True or False, # If true, the embedded object is put on a new sheet whose ID
-                  # is chosen for you. Used only when writing.
-              "sheetId": 42, # The sheet this is on. Set only if the embedded object
-                  # is on its own sheet. Must be non-negative.
-              "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid.
-                "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to.
-                    # All indexes are zero-based.
-                  "rowIndex": 42, # The row index of the coordinate.
-                  "columnIndex": 42, # The column index of the coordinate.
-                  "sheetId": 42, # The sheet this coordinate is on.
-                },
-                "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
-                "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
-                    # from the anchor cell.
-                "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
-                    # from the anchor cell.
-                "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
-              },
-            },
-            "spec": { # The specifications of a chart. # The specification of the chart.
-              "fontName": "A String", # The name of the font to use by default for all chart text (e.g. title,
-                  # axis labels, legend).  If a font is specified for a specific part of the
-                  # chart it will override this font name.
-              "altText": "A String", # The alternative text that describes the chart.  This is often used
-                  # for accessibility.
-              "subtitle": "A String", # The subtitle of the chart.
-              "subtitleTextFormat": { # The format of a run of text in a cell. # The subtitle text format.
-                  # Strikethrough and underline are not supported.
-                  # Absent values indicate that the field isn't specified.
-                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+              "foregroundColorStyle": { # A color value. # The foreground color to sort by; cells with this foreground color are
+                  # sorted to the top. Mutually exclusive with background_color, and must
+                  # be an RGB-type color. If foreground_color is also set, this field takes
+                  # precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
                     # for simplicity of conversion to/from color representations in various
                     # languages over compactness; for example, the fields of this representation
                     # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -61453,14 +125030,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -61490,11 +125067,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -61517,12 +125094,3564 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
-                "bold": True or False, # True if the text is bold.
-                "strikethrough": True or False, # True if the text has a strikethrough.
-                "fontFamily": "A String", # The font family.
-                "fontSize": 42, # The size of the font.
-                "italic": True or False, # True if the text is italicized.
-                "underline": True or False, # True if the text is underlined.
+              },
+              "backgroundColorStyle": { # A color value. # The background fill color to sort by; cells with this fill color are sorted
+                  # to the top. Mutually exclusive with foreground_color, and must be an
+                  # RGB-type color. If background_color is also set, this field takes
+                  # precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "sortOrder": "A String", # The order data should be sorted.
+              "dimensionIndex": 42, # The dimension the sort should be applied to.
+            },
+          ],
+          "criteria": { # The criteria for showing/hiding values per column.
+              # The map's key is the column index, and the value is the criteria for
+              # that column.
+            "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
+              "visibleBackgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to filter by; only cells with this fill color are
+                  # shown. Mutually exclusive with visible_foreground_color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "hiddenValues": [ # Values that should be hidden.
+                "A String",
+              ],
+              "visibleBackgroundColorStyle": { # A color value. # The background fill color to filter by; only cells with this fill color are
+                  # shown. This field is mutually exclusive with visible_foreground_color,
+                  # and must be set to an RGB-type color. If visible_background_color is
+                  # also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "visibleForegroundColorStyle": { # A color value. # The foreground color to filter by; only cells with this foreground color
+                  # are shown. This field is mutually exclusive with
+                  # visible_background_color, and must be set to an RGB-type color. If
+                  # visible_foreground_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "visibleForegroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to filter by; only cells with this foreground color
+                  # are shown. Mutually exclusive with visible_background_color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
+                  # (This does not override hidden_values -- if a value is listed there,
+                  #  it will still be hidden.)
+                  # BooleanConditions are used by conditional formatting,
+                  # data validation, and the criteria in filters.
+                "values": [ # The values of the condition. The number of supported values depends
+                    # on the condition type.  Some support zero values,
+                    # others one or two values,
+                    # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                  { # The value of the condition.
+                    "relativeDate": "A String", # A relative date (based on the current date).
+                        # Valid only if the type is
+                        # DATE_BEFORE,
+                        # DATE_AFTER,
+                        # DATE_ON_OR_BEFORE or
+                        # DATE_ON_OR_AFTER.
+                        #
+                        # Relative dates are not supported in data validation.
+                        # They are supported only in conditional formatting and
+                        # conditional filters.
+                    "userEnteredValue": "A String", # A value the condition is based on.
+                        # The value is parsed as if the user typed into a cell.
+                        # Formulas are supported (and must begin with an `=` or a '+').
+                  },
+                ],
+                "type": "A String", # The type of condition.
+              },
+            },
+          },
+        },
+        "developerMetadata": [ # The developer metadata associated with a sheet.
+          { # Developer metadata associated with a location or object in a spreadsheet.
+              # Developer metadata may be used to associate arbitrary data with various
+              # parts of a spreadsheet and will remain associated at those locations as they
+              # move around and the spreadsheet is edited.  For example, if developer
+              # metadata is associated with row 5 and another row is then subsequently
+              # inserted above row 5, that original metadata will still be associated with
+              # the row it was first associated with (what is now row 6). If the associated
+              # object is deleted its metadata is deleted too.
+            "metadataId": 42, # The spreadsheet-scoped unique ID that identifies the metadata. IDs may be
+                # specified when metadata is created, otherwise one will be randomly
+                # generated and assigned. Must be positive.
+            "metadataValue": "A String", # Data associated with the metadata's key.
+            "location": { # A location where metadata may be associated in a spreadsheet. # The location where the metadata is associated.
+              "locationType": "A String", # The type of location this object represents.  This field is read-only.
+              "dimensionRange": { # A range along a single dimension on a sheet. # Represents the row or column when metadata is associated with
+                  # a dimension. The specified DimensionRange must represent a single row
+                  # or column; it cannot be unbounded or span multiple rows or columns.
+                  # All indexes are zero-based.
+                  # Indexes are half open: the start index is inclusive
+                  # and the end index is exclusive.
+                  # Missing indexes indicate the range is unbounded on that side.
+                "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
+                "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
+                "sheetId": 42, # The sheet this span is on.
+                "dimension": "A String", # The dimension of the span.
+              },
+              "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+              "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
+            },
+            "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
+                # specified.
+            "metadataKey": "A String", # The metadata key. There may be multiple metadata in a spreadsheet with the
+                # same key.  Developer metadata must always have a key specified.
+          },
+        ],
+        "conditionalFormats": [ # The conditional format rules in this sheet.
+          { # A rule describing a conditional format.
+            "ranges": [ # The ranges that are formatted if the condition is true.
+                # All the ranges must be on the same grid.
+              { # A range on a sheet.
+                  # All indexes are zero-based.
+                  # Indexes are half open, e.g the start index is inclusive
+                  # and the end index is exclusive -- [start_index, end_index).
+                  # Missing indexes indicate the range is unbounded on that side.
+                  #
+                  # For example, if `"Sheet1"` is sheet ID 0, then:
+                  #
+                  #   `Sheet1!A1:A1 == sheet_id: 0,
+                  #                   start_row_index: 0, end_row_index: 1,
+                  #                   start_column_index: 0, end_column_index: 1`
+                  #
+                  #   `Sheet1!A3:B4 == sheet_id: 0,
+                  #                   start_row_index: 2, end_row_index: 4,
+                  #                   start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1!A:B == sheet_id: 0,
+                  #                 start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1!A5:B == sheet_id: 0,
+                  #                  start_row_index: 4,
+                  #                  start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1 == sheet_id:0`
+                  #
+                  # The start index must always be less than or equal to the end index.
+                  # If the start index equals the end index, then the range is empty.
+                  # Empty ranges are typically not meaningful and are usually rendered in the
+                  # UI as `#REF!`.
+                "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "sheetId": 42, # The sheet this range is on.
+                "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              },
+            ],
+            "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
+              "condition": { # A condition that can evaluate to true or false. # The condition of the rule. If the condition evaluates to true,
+                  # the format is applied.
+                  # BooleanConditions are used by conditional formatting,
+                  # data validation, and the criteria in filters.
+                "values": [ # The values of the condition. The number of supported values depends
+                    # on the condition type.  Some support zero values,
+                    # others one or two values,
+                    # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                  { # The value of the condition.
+                    "relativeDate": "A String", # A relative date (based on the current date).
+                        # Valid only if the type is
+                        # DATE_BEFORE,
+                        # DATE_AFTER,
+                        # DATE_ON_OR_BEFORE or
+                        # DATE_ON_OR_AFTER.
+                        #
+                        # Relative dates are not supported in data validation.
+                        # They are supported only in conditional formatting and
+                        # conditional filters.
+                    "userEnteredValue": "A String", # A value the condition is based on.
+                        # The value is parsed as if the user typed into a cell.
+                        # Formulas are supported (and must begin with an `=` or a '+').
+                  },
+                ],
+                "type": "A String", # The type of condition.
+              },
+              "format": { # The format of a cell. # The format to apply.
+                  # Conditional formatting can only apply a subset of formatting:
+                  # bold, italic,
+                  # strikethrough,
+                  # foreground color &amp;
+                  # background color.
+                "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                    # When updating padding, every field must be specified.
+                  "top": 42, # The top padding of the cell.
+                  "left": 42, # The left padding of the cell.
+                  "right": 42, # The right padding of the cell.
+                  "bottom": 42, # The bottom padding of the cell.
+                },
+                "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
+                  "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
+                      # the user's locale will be used if necessary for the given type.
+                      # See the [Date and Number Formats guide](/sheets/api/guides/formats) for
+                      # more information about the supported patterns.
+                  "type": "A String", # The type of the number format.
+                      # When writing, this field must be set.
+                },
+                "textDirection": "A String", # The direction of the text in the cell.
+                "backgroundColorStyle": { # A color value. # The background color of the cell.
+                    # If background_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
+                "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                "borders": { # The borders of the cell. # The borders of the cell.
+                  "top": { # A border along a cell. # The top border of the cell.
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "width": 42, # The width of the border, in pixels.
+                        # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "style": "A String", # The style of the border.
+                  },
+                  "left": { # A border along a cell. # The left border of the cell.
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "width": 42, # The width of the border, in pixels.
+                        # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "style": "A String", # The style of the border.
+                  },
+                  "right": { # A border along a cell. # The right border of the cell.
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "width": 42, # The width of the border, in pixels.
+                        # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "style": "A String", # The style of the border.
+                  },
+                  "bottom": { # A border along a cell. # The bottom border of the cell.
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "width": 42, # The width of the border, in pixels.
+                        # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "style": "A String", # The style of the border.
+                  },
+                },
+                "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                  "angle": 42, # The angle between the standard orientation and the desired orientation.
+                      # Measured in degrees. Valid values are between -90 and 90. Positive
+                      # angles are angled upwards, negative are angled downwards.
+                      #
+                      # Note: For LTR text direction positive angles are in the
+                      # counterclockwise direction, whereas for RTL they are in the clockwise
+                      # direction
+                  "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                      # characters is unchanged.
+                      # For example:
+                      #
+                      #     | V |
+                      #     | e |
+                      #     | r |
+                      #     | t |
+                      #     | i |
+                      #     | c |
+                      #     | a |
+                      #     | l |
+                },
+                "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
+                "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
+                    # Absent values indicate that the field isn't specified.
+                  "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "strikethrough": True or False, # True if the text has a strikethrough.
+                  "fontFamily": "A String", # The font family.
+                  "fontSize": 42, # The size of the font.
+                  "italic": True or False, # True if the text is italicized.
+                  "underline": True or False, # True if the text is underlined.
+                },
+                "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+              },
+            },
+            "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule.
+                # the interpolation points listed. The format of a cell will vary
+                # based on its contents as compared to the values of the interpolation
+                # points.
+              "maxpoint": { # A single interpolation point on a gradient conditional format. # The final interpolation point.
+                  # These pin the gradient color scale according to the color,
+                  # type and value chosen.
+                "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "type": "A String", # How the value should be interpreted.
+                "value": "A String", # The value this interpolation point uses.  May be a formula.
+                    # Unused if type is MIN or
+                    # MAX.
+              },
+              "midpoint": { # A single interpolation point on a gradient conditional format. # An optional midway interpolation point.
+                  # These pin the gradient color scale according to the color,
+                  # type and value chosen.
+                "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "type": "A String", # How the value should be interpreted.
+                "value": "A String", # The value this interpolation point uses.  May be a formula.
+                    # Unused if type is MIN or
+                    # MAX.
+              },
+              "minpoint": { # A single interpolation point on a gradient conditional format. # The starting interpolation point.
+                  # These pin the gradient color scale according to the color,
+                  # type and value chosen.
+                "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "type": "A String", # How the value should be interpreted.
+                "value": "A String", # The value this interpolation point uses.  May be a formula.
+                    # Unused if type is MIN or
+                    # MAX.
+              },
+            },
+          },
+        ],
+        "charts": [ # The specifications of every chart on this sheet.
+          { # A chart embedded in a sheet.
+            "chartId": 42, # The ID of the chart.
+            "position": { # The position of an embedded object such as a chart. # The position of the chart.
+              "newSheet": True or False, # If true, the embedded object is put on a new sheet whose ID
+                  # is chosen for you. Used only when writing.
+              "sheetId": 42, # The sheet this is on. Set only if the embedded object
+                  # is on its own sheet. Must be non-negative.
+              "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid.
+                "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to.
+                    # All indexes are zero-based.
+                  "rowIndex": 42, # The row index of the coordinate.
+                  "columnIndex": 42, # The column index of the coordinate.
+                  "sheetId": 42, # The sheet this coordinate is on.
+                },
+                "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
+                    # from the anchor cell.
+                "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
+                "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
+                    # from the anchor cell.
+                "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
+              },
+            },
+            "spec": { # The specifications of a chart. # The specification of the chart.
+              "fontName": "A String", # The name of the font to use by default for all chart text (e.g. title,
+                  # axis labels, legend).  If a font is specified for a specific part of the
+                  # chart it will override this font name.
+              "altText": "A String", # The alternative text that describes the chart.  This is often used
+                  # for accessibility.
+              "subtitle": "A String", # The subtitle of the chart.
+              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the entire chart.
+                  # Not applicable to Org charts.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
               "title": "A String", # The title of the chart.
               "titleTextFormat": { # The format of a run of text in a cell. # The title text format.
@@ -61598,14 +128727,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -61635,11 +128764,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -61663,20 +128792,158 @@
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
                 "bold": True or False, # True if the text is bold.
+                "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                    # If foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "strikethrough": True or False, # True if the text has a strikethrough.
                 "fontFamily": "A String", # The font family.
                 "fontSize": 42, # The size of the font.
                 "italic": True or False, # True if the text is italicized.
                 "underline": True or False, # True if the text is underlined.
               },
-              "treemapChart": { # A <a href="/chart/interactive/docs/gallery/treemap">Treemap chart</a>. # A treemap chart specification.
+              "treemapChart": { # A &lt;a href="/chart/interactive/docs/gallery/treemap"&gt;Treemap chart&lt;/a&gt;. # A treemap chart specification.
                 "parentLabels": { # The data included in a domain or series. # The data the contains the treemap cells' parent labels.
                   "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                     "sources": [ # The ranges of data for a series or domain.
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -61728,66 +128995,139 @@
                     ],
                   },
                 },
-                "sizeData": { # The data included in a domain or series. # The data that determines the size of each treemap data cell. This data is
-                    # expected to be numeric. The cells corresponding to non-numeric or missing
-                    # data will not be rendered. If color_data is not specified, this data
-                    # is used to determine data cell background colors as well.
-                  "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
-                    "sources": [ # The ranges of data for a series or domain.
-                        # Exactly one dimension must have a length of 1,
-                        # and all sources in the list must have the same dimension
-                        # with length 1.
-                        # The domain (if it exists) & all series must have the same number
-                        # of source ranges. If using more than one source range, then the source
-                        # range at a given offset must be in order and contiguous across the domain
-                        # and series.
-                        #
-                        # For example, these are valid configurations:
-                        #
-                        #     domain sources: A1:A5
-                        #     series1 sources: B1:B5
-                        #     series2 sources: D6:D10
-                        #
-                        #     domain sources: A1:A5, C10:C12
-                        #     series1 sources: B1:B5, D10:D12
-                        #     series2 sources: C1:C5, E10:E12
-                      { # A range on a sheet.
-                          # All indexes are zero-based.
-                          # Indexes are half open, e.g the start index is inclusive
-                          # and the end index is exclusive -- [start_index, end_index).
-                          # Missing indexes indicate the range is unbounded on that side.
-                          #
-                          # For example, if `"Sheet1"` is sheet ID 0, then:
-                          #
-                          #   `Sheet1!A1:A1 == sheet_id: 0,
-                          #                   start_row_index: 0, end_row_index: 1,
-                          #                   start_column_index: 0, end_column_index: 1`
-                          #
-                          #   `Sheet1!A3:B4 == sheet_id: 0,
-                          #                   start_row_index: 2, end_row_index: 4,
-                          #                   start_column_index: 0, end_column_index: 2`
-                          #
-                          #   `Sheet1!A:B == sheet_id: 0,
-                          #                 start_column_index: 0, end_column_index: 2`
-                          #
-                          #   `Sheet1!A5:B == sheet_id: 0,
-                          #                  start_row_index: 4,
-                          #                  start_column_index: 0, end_column_index: 2`
-                          #
-                          #   `Sheet1 == sheet_id:0`
-                          #
-                          # The start index must always be less than or equal to the end index.
-                          # If the start index equals the end index, then the range is empty.
-                          # Empty ranges are typically not meaningful and are usually rendered in the
-                          # UI as `#REF!`.
-                        "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-                        "sheetId": 42, # The sheet this range is on.
-                        "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-                      },
-                    ],
-                  },
+                "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for header cells.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
                 "hideTooltips": True or False, # True to hide tooltips.
                 "colorScale": { # A color scale for a treemap chart. # The color scale for data cells in the treemap chart. Data cells are
@@ -61806,6 +129146,142 @@
                     # Cells with missing or non-numeric color values will have
                     # noDataColor as their background
                     # color.
+                  "maxValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value greater than or equal
+                      # to maxValue. Defaults to #109618 if not
+                      # specified.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
                   "noDataColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells that have no color data associated with
                       # them. Defaults to #000000 if not specified.
                       # for simplicity of conversion to/from color representations in various
@@ -61877,14 +129353,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -61914,11 +129390,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -61941,6 +129417,562 @@
                     "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
+                  "midValueColorStyle": { # A color value. # The background color for cells with a color value at the midpoint between
+                      # minValue and
+                      # maxValue. Defaults to #efe6dc if not
+                      # specified.
+                      # If mid_value_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "maxValueColorStyle": { # A color value. # The background color for cells with a color value greater than or equal
+                      # to maxValue. Defaults to #109618 if not
+                      # specified.
+                      # If max_value_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "minValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value less than or equal to
+                      # minValue. Defaults to #dc3912 if not
+                      # specified.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "noDataColorStyle": { # A color value. # The background color for cells that have no color data associated with
+                      # them. Defaults to #000000 if not specified.
+                      # If no_data_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "midValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value at the midpoint between
                       # minValue and
                       # maxValue. Defaults to #efe6dc if not
@@ -62014,14 +130046,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -62051,11 +130083,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -62078,277 +130110,145 @@
                     "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
-                  "minValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value less than or equal to
+                  "minValueColorStyle": { # A color value. # The background color for cells with a color value less than or equal to
                       # minValue. Defaults to #dc3912 if not
                       # specified.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
+                      # If min_value_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
                         #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
                         #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                  },
-                  "maxValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value greater than or equal
-                      # to maxValue. Defaults to #109618 if not
-                      # specified.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
+                        # Example (Java):
                         #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #      import com.google.type.Color;
                         #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
                   },
                 },
                 "labels": { # The data included in a domain or series. # The data that contains the treemap cell labels.
@@ -62357,7 +130257,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -62419,7 +130319,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -62475,147 +130375,74 @@
                     # have the same color as cells with this value. If not specified, defaults
                     # to the actual maximum value from color_data, or the maximum value from
                     # size_data if color_data is not specified.
+                "levels": 42, # The number of data levels to show on the treemap chart. These levels are
+                    # interactive and are shown with their labels. Defaults to 2 if not
+                    # specified.
                 "minValue": 3.14, # The minimum possible data value. Cells with values less than this will
                     # have the same color as cells with this value. If not specified, defaults
                     # to the actual minimum value from color_data, or the minimum value from
                     # size_data if color_data is not specified.
-                "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for header cells.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                "sizeData": { # The data included in a domain or series. # The data that determines the size of each treemap data cell. This data is
+                    # expected to be numeric. The cells corresponding to non-numeric or missing
+                    # data will not be rendered. If color_data is not specified, this data
+                    # is used to determine data cell background colors as well.
+                  "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                    "sources": [ # The ranges of data for a series or domain.
+                        # Exactly one dimension must have a length of 1,
+                        # and all sources in the list must have the same dimension
+                        # with length 1.
+                        # The domain (if it exists) &amp; all series must have the same number
+                        # of source ranges. If using more than one source range, then the source
+                        # range at a given offset must be in order and contiguous across the domain
+                        # and series.
+                        #
+                        # For example, these are valid configurations:
+                        #
+                        #     domain sources: A1:A5
+                        #     series1 sources: B1:B5
+                        #     series2 sources: D6:D10
+                        #
+                        #     domain sources: A1:A5, C10:C12
+                        #     series1 sources: B1:B5, D10:D12
+                        #     series2 sources: C1:C5, E10:E12
+                      { # A range on a sheet.
+                          # All indexes are zero-based.
+                          # Indexes are half open, e.g the start index is inclusive
+                          # and the end index is exclusive -- [start_index, end_index).
+                          # Missing indexes indicate the range is unbounded on that side.
+                          #
+                          # For example, if `"Sheet1"` is sheet ID 0, then:
+                          #
+                          #   `Sheet1!A1:A1 == sheet_id: 0,
+                          #                   start_row_index: 0, end_row_index: 1,
+                          #                   start_column_index: 0, end_column_index: 1`
+                          #
+                          #   `Sheet1!A3:B4 == sheet_id: 0,
+                          #                   start_row_index: 2, end_row_index: 4,
+                          #                   start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A:B == sheet_id: 0,
+                          #                 start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A5:B == sheet_id: 0,
+                          #                  start_row_index: 4,
+                          #                  start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1 == sheet_id:0`
+                          #
+                          # The start index must always be less than or equal to the end index.
+                          # If the start index equals the end index, then the range is empty.
+                          # Empty ranges are typically not meaningful and are usually rendered in the
+                          # UI as `#REF!`.
+                        "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "sheetId": 42, # The sheet this range is on.
+                        "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      },
+                    ],
+                  },
                 },
-                "levels": 42, # The number of data levels to show on the treemap chart. These levels are
-                    # interactive and are shown with their labels. Defaults to 2 if not
-                    # specified.
                 "hintedLevels": 42, # The number of additional data levels beyond the labeled levels to be shown
                     # on the treemap chart. These levels are not interactive and are shown
                     # without their labels. Defaults to 0 if not specified.
@@ -62691,14 +130518,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -62728,11 +130555,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -62756,26 +130583,1706 @@
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
                   "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "strikethrough": True or False, # True if the text has a strikethrough.
                   "fontFamily": "A String", # The font family.
                   "fontSize": 42, # The size of the font.
                   "italic": True or False, # True if the text is italicized.
                   "underline": True or False, # True if the text is underlined.
                 },
+                "headerColorStyle": { # A color value. # The background color for header cells.
+                    # If header_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+              },
+              "scorecardChart": { # A scorecard chart. Scorecard charts are used to highlight key performance # A scorecard chart specification.
+                  # indicators, known as KPIs, on the spreadsheet. A scorecard chart can
+                  # represent things like total sales, average cost, or a top selling item. You
+                  # can specify a single data value, or aggregate over a range of data.
+                  # Percentage or absolute difference from a baseline value can be highlighted,
+                  # like changes over time.
+                "numberFormatSource": "A String", # The number format source used in the scorecard chart.
+                    # This field is optional.
+                "customFormatOptions": { # Custom number formatting options for chart attributes. # Custom formatting options for numeric key/baseline values in scorecard
+                    # chart. This field is used only when number_format_source is set to
+                    # CUSTOM. This field is optional.
+                  "prefix": "A String", # Custom prefix to be prepended to the chart attribute.
+                      # This field is optional.
+                  "suffix": "A String", # Custom suffix to be appended to the chart attribute.
+                      # This field is optional.
+                },
+                "keyValueFormat": { # Formatting options for key value. # Formatting options for key value.
+                  "position": { # Position settings for text. # Specifies the horizontal text positioning of key value.
+                      # This field is optional. If not specified, default positioning is used.
+                    "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
+                  },
+                  "textFormat": { # The format of a run of text in a cell. # Text formatting options for key value.
+                      # Absent values indicate that the field isn't specified.
+                    "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "bold": True or False, # True if the text is bold.
+                    "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                        # If foreground_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "strikethrough": True or False, # True if the text has a strikethrough.
+                    "fontFamily": "A String", # The font family.
+                    "fontSize": 42, # The size of the font.
+                    "italic": True or False, # True if the text is italicized.
+                    "underline": True or False, # True if the text is underlined.
+                  },
+                },
+                "aggregateType": "A String", # The aggregation type for key and baseline chart data in scorecard chart.
+                    # This field is optional.
+                "baselineValueFormat": { # Formatting options for baseline value. # Formatting options for baseline value.
+                    # This field is needed only if baseline_value_data is specified.
+                  "description": "A String", # Description which is appended after the baseline value.
+                      # This field is optional.
+                  "negativeColor": { # Represents a color in the RGBA color space. This representation is designed # Color to be used, in case baseline value represents a negative change for
+                      # key value. This field is optional.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "comparisonType": "A String", # The comparison type of key value with baseline value.
+                  "positiveColorStyle": { # A color value. # Color to be used, in case baseline value represents a positive change for
+                      # key value. This field is optional.
+                      # If positive_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "negativeColorStyle": { # A color value. # Color to be used, in case baseline value represents a negative change for
+                      # key value. This field is optional.
+                      # If negative_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "position": { # Position settings for text. # Specifies the horizontal text positioning of baseline value.
+                      # This field is optional. If not specified, default positioning is used.
+                    "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
+                  },
+                  "textFormat": { # The format of a run of text in a cell. # Text formatting options for baseline value.
+                      # Absent values indicate that the field isn't specified.
+                    "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "bold": True or False, # True if the text is bold.
+                    "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                        # If foreground_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "strikethrough": True or False, # True if the text has a strikethrough.
+                    "fontFamily": "A String", # The font family.
+                    "fontSize": 42, # The size of the font.
+                    "italic": True or False, # True if the text is italicized.
+                    "underline": True or False, # True if the text is underlined.
+                  },
+                  "positiveColor": { # Represents a color in the RGBA color space. This representation is designed # Color to be used, in case baseline value represents a positive change for
+                      # key value. This field is optional.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "keyValueData": { # The data included in a domain or series. # The data for scorecard key value.
+                  "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                    "sources": [ # The ranges of data for a series or domain.
+                        # Exactly one dimension must have a length of 1,
+                        # and all sources in the list must have the same dimension
+                        # with length 1.
+                        # The domain (if it exists) &amp; all series must have the same number
+                        # of source ranges. If using more than one source range, then the source
+                        # range at a given offset must be in order and contiguous across the domain
+                        # and series.
+                        #
+                        # For example, these are valid configurations:
+                        #
+                        #     domain sources: A1:A5
+                        #     series1 sources: B1:B5
+                        #     series2 sources: D6:D10
+                        #
+                        #     domain sources: A1:A5, C10:C12
+                        #     series1 sources: B1:B5, D10:D12
+                        #     series2 sources: C1:C5, E10:E12
+                      { # A range on a sheet.
+                          # All indexes are zero-based.
+                          # Indexes are half open, e.g the start index is inclusive
+                          # and the end index is exclusive -- [start_index, end_index).
+                          # Missing indexes indicate the range is unbounded on that side.
+                          #
+                          # For example, if `"Sheet1"` is sheet ID 0, then:
+                          #
+                          #   `Sheet1!A1:A1 == sheet_id: 0,
+                          #                   start_row_index: 0, end_row_index: 1,
+                          #                   start_column_index: 0, end_column_index: 1`
+                          #
+                          #   `Sheet1!A3:B4 == sheet_id: 0,
+                          #                   start_row_index: 2, end_row_index: 4,
+                          #                   start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A:B == sheet_id: 0,
+                          #                 start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A5:B == sheet_id: 0,
+                          #                  start_row_index: 4,
+                          #                  start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1 == sheet_id:0`
+                          #
+                          # The start index must always be less than or equal to the end index.
+                          # If the start index equals the end index, then the range is empty.
+                          # Empty ranges are typically not meaningful and are usually rendered in the
+                          # UI as `#REF!`.
+                        "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "sheetId": 42, # The sheet this range is on.
+                        "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      },
+                    ],
+                  },
+                },
+                "scaleFactor": 3.14, # Value to scale scorecard key and baseline value. For example, a factor of
+                    # 10 can be used to divide all values in the chart by 10.
+                    # This field is optional.
+                "baselineValueData": { # The data included in a domain or series. # The data for scorecard baseline value.
+                    # This field is optional.
+                  "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                    "sources": [ # The ranges of data for a series or domain.
+                        # Exactly one dimension must have a length of 1,
+                        # and all sources in the list must have the same dimension
+                        # with length 1.
+                        # The domain (if it exists) &amp; all series must have the same number
+                        # of source ranges. If using more than one source range, then the source
+                        # range at a given offset must be in order and contiguous across the domain
+                        # and series.
+                        #
+                        # For example, these are valid configurations:
+                        #
+                        #     domain sources: A1:A5
+                        #     series1 sources: B1:B5
+                        #     series2 sources: D6:D10
+                        #
+                        #     domain sources: A1:A5, C10:C12
+                        #     series1 sources: B1:B5, D10:D12
+                        #     series2 sources: C1:C5, E10:E12
+                      { # A range on a sheet.
+                          # All indexes are zero-based.
+                          # Indexes are half open, e.g the start index is inclusive
+                          # and the end index is exclusive -- [start_index, end_index).
+                          # Missing indexes indicate the range is unbounded on that side.
+                          #
+                          # For example, if `"Sheet1"` is sheet ID 0, then:
+                          #
+                          #   `Sheet1!A1:A1 == sheet_id: 0,
+                          #                   start_row_index: 0, end_row_index: 1,
+                          #                   start_column_index: 0, end_column_index: 1`
+                          #
+                          #   `Sheet1!A3:B4 == sheet_id: 0,
+                          #                   start_row_index: 2, end_row_index: 4,
+                          #                   start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A:B == sheet_id: 0,
+                          #                 start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A5:B == sheet_id: 0,
+                          #                  start_row_index: 4,
+                          #                  start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1 == sheet_id:0`
+                          #
+                          # The start index must always be less than or equal to the end index.
+                          # If the start index equals the end index, then the range is empty.
+                          # Empty ranges are typically not meaningful and are usually rendered in the
+                          # UI as `#REF!`.
+                        "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "sheetId": 42, # The sheet this range is on.
+                        "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      },
+                    ],
+                  },
+                },
               },
               "titleTextPosition": { # Position settings for text. # The title text position.
                   # This field is optional.
                 "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
               },
+              "backgroundColorStyle": { # A color value. # The background color of the entire chart.
+                  # Not applicable to Org charts.
+                  # If background_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
               "hiddenDimensionStrategy": "A String", # Determines how the charts will use hidden rows or columns.
-              "pieChart": { # A <a href="/chart/interactive/docs/gallery/piechart">pie chart</a>. # A pie chart specification.
+              "pieChart": { # A &lt;a href="/chart/interactive/docs/gallery/piechart"&gt;pie chart&lt;/a&gt;. # A pie chart specification.
                 "series": { # The data included in a domain or series. # The data that covers the one and only series of the pie chart.
                   "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                     "sources": [ # The ranges of data for a series or domain.
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -62833,7 +132340,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -62889,8 +132396,8 @@
                 "legendPosition": "A String", # Where the legend of the pie chart should be drawn.
                 "pieHole": 3.14, # The size of the hole in the pie chart.
               },
-              "candlestickChart": { # A <a href="/chart/interactive/docs/gallery/candlestickchart">candlestick # A candlestick chart specification.
-                  # chart</a>.
+              "candlestickChart": { # A &lt;a href="/chart/interactive/docs/gallery/candlestickchart"&gt;candlestick # A candlestick chart specification.
+                  # chart&lt;/a&gt;.
                 "domain": { # The domain of a CandlestickChart. # The domain data (horizontal axis) for the candlestick chart.  String data
                     # will be treated as discrete labels, other data will be treated as
                     # continuous values.
@@ -62901,7 +132408,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -62966,7 +132473,7 @@
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -63027,7 +132534,7 @@
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -63089,7 +132596,7 @@
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -63151,7 +132658,7 @@
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -63211,140 +132718,287 @@
                   # This field is optional.
                 "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
               },
-              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the entire chart.
-                  # Not applicable to Org charts.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
+              "subtitleTextFormat": { # The format of a run of text in a cell. # The subtitle text format.
+                  # Strikethrough and underline are not supported.
+                  # Absent values indicate that the field isn't specified.
+                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
                     #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
                     #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "bold": True or False, # True if the text is bold.
+                "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                    # If foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "strikethrough": True or False, # True if the text has a strikethrough.
+                "fontFamily": "A String", # The font family.
+                "fontSize": 42, # The size of the font.
+                "italic": True or False, # True if the text is italicized.
+                "underline": True or False, # True if the text is underlined.
               },
               "maximized": True or False, # True to make a chart fill the entire space in which it's rendered with
                   # minimum padding.  False to use the default padding.
@@ -63360,7 +133014,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -63493,14 +133147,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -63530,11 +133184,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -63557,6 +133211,144 @@
                         "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
+                      "colorStyle": { # A color value. # The color of the column.
+                          # If color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "label": "A String", # The label of the column's legend.
                     },
                     "subtotalColumnsStyle": { # Styles for a waterfall chart column. # Styles for all subtotal columns in this series.
@@ -63630,14 +133422,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -63667,11 +133459,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -63694,6 +133486,144 @@
                         "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
+                      "colorStyle": { # A color value. # The color of the column.
+                          # If color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "label": "A String", # The label of the column's legend.
                     },
                     "negativeColumnsStyle": { # Styles for a waterfall chart column. # Styles for all columns in this series with negative values.
@@ -63767,14 +133697,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -63804,11 +133734,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -63831,6 +133761,144 @@
                         "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
+                      "colorStyle": { # A color value. # The color of the column.
+                          # If color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "label": "A String", # The label of the column's legend.
                     },
                     "customSubtotals": [ # Custom subtotal columns appearing in this series. The order in which
@@ -63856,7 +133924,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -63918,6 +133986,8 @@
                   # of charts this supports.
                 "stackedType": "A String", # The stacked type for charts that support vertical stacking.
                     # Applies to Area, Bar, Column, Combo, and Stepped Area charts.
+                "compareMode": "A String", # The behavior of tooltips and data highlighting when hovering on data and
+                    # chart area.
                 "headerCount": 42, # The number of rows or columns in the data that are "headers".
                     # If not set, Google Sheets will guess how many rows are headers based
                     # on the data.
@@ -63928,8 +133998,147 @@
                   { # A single series of data in a chart.
                       # For example, if charting stock prices over time, multiple series may exist,
                       # one for the "Open Price", "High Price", "Low Price" and "Close Price".
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color for elements (i.e. bars, lines, points) associated with this
-                        # series.  If empty, a default color is used.
+                    "colorStyle": { # A color value. # The color for elements (such as bars, lines, and points) associated with
+                        # this series.  If empty, a default color is used.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color for elements (such as bars, lines, and points) associated with
+                        # this series.  If empty, a default color is used.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
                         # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -63999,14 +134208,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -64036,11 +134245,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -64069,7 +134278,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -64128,6 +134337,12 @@
                         # prices.
                         # It is an error to specify an axis that isn't a valid minor axis
                         # for the chart's type.
+                    "type": "A String", # The type of this series. Valid only if the
+                        # chartType is
+                        # COMBO.
+                        # Different types will change the way the series is visualized.
+                        # Only LINE, AREA,
+                        # and COLUMN are supported.
                     "lineStyle": { # Properties that describe the style of a line. # The line style of this series. Valid only if the
                         # chartType is AREA,
                         # LINE, or SCATTER.
@@ -64137,12 +134352,6 @@
                       "width": 42, # The thickness of the line, in px.
                       "type": "A String", # The dash type of the line.
                     },
-                    "type": "A String", # The type of this series. Valid only if the
-                        # chartType is
-                        # COMBO.
-                        # Different types will change the way the series is visualized.
-                        # Only LINE, AREA,
-                        # and COLUMN are supported.
                   },
                 ],
                 "interpolateNulls": True or False, # If some values in a series are missing, gaps may appear in the chart (e.g,
@@ -64152,8 +134361,8 @@
                 "legendPosition": "A String", # The position of the chart legend.
                 "lineSmoothing": True or False, # Gets whether all lines should be rendered smooth or straight by default.
                     # Applies to Line charts.
-                "compareMode": "A String", # The behavior of tooltips and data highlighting when hovering on data and
-                    # chart area.
+                "threeDimensional": True or False, # True to make the chart 3D.
+                    # Applies to Bar and Column charts.
                 "domains": [ # The domain of data this is charting.
                     # Only a single domain is supported.
                   { # The domain of a chart.
@@ -64166,7 +134375,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -64221,13 +134430,10 @@
                   },
                 ],
                 "chartType": "A String", # The type of the chart.
-                "threeDimensional": True or False, # True to make the chart 3D.
-                    # Applies to Bar and Column charts.
                 "axis": [ # The axis on the chart.
                   { # An axis of the chart.
                       # A chart may not have more than one axis per
                       # axis position.
-                    "position": "A String", # The position of this axis.
                     "format": { # The format of a run of text in a cell. # The format of the title.
                         # Only valid if the axis is not associated with the domain.
                         # Absent values indicate that the field isn't specified.
@@ -64301,14 +134507,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -64338,11 +134544,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -64366,21 +134572,168 @@
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
                       "bold": True or False, # True if the text is bold.
+                      "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                          # If foreground_color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "strikethrough": True or False, # True if the text has a strikethrough.
                       "fontFamily": "A String", # The font family.
                       "fontSize": 42, # The size of the font.
                       "italic": True or False, # True if the text is italicized.
                       "underline": True or False, # True if the text is underlined.
                     },
-                    "title": "A String", # The title of this axis. If set, this overrides any title inferred
-                        # from headers of the data.
+                    "position": "A String", # The position of this axis.
+                    "viewWindowOptions": { # The options that define a "view window" for a chart (such as the visible # The view window options for this axis.
+                        # values in an axis).
+                      "viewWindowMin": 3.14, # The minimum numeric value to be shown in this view window. If unset, will
+                          # automatically determine a minimum value that looks good for the data.
+                      "viewWindowMax": 3.14, # The maximum numeric value to be shown in this view window. If unset, will
+                          # automatically determine a maximum value that looks good for the data.
+                      "viewWindowMode": "A String", # The view window's mode.
+                    },
                     "titleTextPosition": { # Position settings for text. # The axis title text position.
                       "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
                     },
+                    "title": "A String", # The title of this axis. If set, this overrides any title inferred
+                        # from headers of the data.
                   },
                 ],
               },
-              "histogramChart": { # A <a href="/chart/interactive/docs/gallery/histogram">histogram chart</a>. # A histogram chart specification.
+              "histogramChart": { # A &lt;a href="/chart/interactive/docs/gallery/histogram"&gt;histogram chart&lt;/a&gt;. # A histogram chart specification.
                   # A histogram chart groups data items into bins, displaying each bin as a
                   # column of stacked items.  Histograms are used to display the distribution
                   # of a dataset.  Each column of items represents a range into which those
@@ -64467,14 +134820,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -64504,11 +134857,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -64531,13 +134884,152 @@
                       "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                       "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                     },
+                    "barColorStyle": { # A color value. # The color of the column representing this series in each bucket.
+                        # This field is optional.
+                        # If bar_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
                     "data": { # The data included in a domain or series. # The data for this histogram series.
                       "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                         "sources": [ # The ranges of data for a series or domain.
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -64600,141 +135092,9 @@
                     # Cannot be negative.
                     # This field is optional.
               },
-              "bubbleChart": { # A <a href="/chart/interactive/docs/gallery/bubblechart">bubble chart</a>. # A bubble chart specification.
-                "bubbleBorderColor": { # Represents a color in the RGBA color space. This representation is designed # The bubble border color.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                },
+              "bubbleChart": { # A &lt;a href="/chart/interactive/docs/gallery/bubblechart"&gt;bubble chart&lt;/a&gt;. # A bubble chart specification.
+                "bubbleOpacity": 3.14, # The opacity of the bubbles between 0 and 1.0.
+                    # 0 is fully transparent and 1 is fully opaque.
                 "domain": { # The data included in a domain or series. # The data containing the bubble x-values.  These values locate the bubbles
                     # in the chart horizontally.
                   "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
@@ -64742,7 +135102,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -64867,14 +135227,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -64904,11 +135264,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -64932,6 +135292,144 @@
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
                   "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "strikethrough": True or False, # True if the text has a strikethrough.
                   "fontFamily": "A String", # The font family.
                   "fontSize": 42, # The size of the font.
@@ -64945,7 +135443,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -64997,11 +135495,281 @@
                     ],
                   },
                 },
+                "bubbleBorderColorStyle": { # A color value. # The bubble border color.
+                    # If bubble_border_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "legendPosition": "A String", # Where the legend of the chart should be drawn.
                 "bubbleMaxRadiusSize": 42, # The max radius size of the bubbles, in pixels.
                     # If specified, the field must be a positive value.
-                "bubbleOpacity": 3.14, # The opacity of the bubbles between 0 and 1.0.
-                    # 0 is fully transparent and 1 is fully opaque.
+                "bubbleBorderColor": { # Represents a color in the RGBA color space. This representation is designed # The bubble border color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
                 "groupIds": { # The data included in a domain or series. # The data containing the bubble group IDs. All bubbles with the same group
                     # ID are drawn in the same color. If bubble_sizes is specified then
                     # this field must also be specified but may contain blank values.
@@ -65011,7 +135779,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -65072,7 +135840,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -65130,7 +135898,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -65185,7 +135953,7 @@
                 "bubbleMinRadiusSize": 42, # The minimum radius size of the bubbles, in pixels.
                     # If specific, the field must be a positive value.
               },
-              "orgChart": { # An <a href="/chart/interactive/docs/gallery/orgchart">org chart</a>. # An org chart specification.
+              "orgChart": { # An &lt;a href="/chart/interactive/docs/gallery/orgchart"&gt;org chart&lt;/a&gt;. # An org chart specification.
                   # Org charts require a unique set of labels in labels and may
                   # optionally include parent_labels and tooltips.
                   # parent_labels contain, for each node, the label identifying the parent
@@ -65204,7 +135972,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -65265,7 +136033,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -65387,14 +136155,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -65424,11 +136192,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -65458,7 +136226,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -65580,14 +136348,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -65617,11 +136385,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -65644,11 +136412,2986 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
+                "nodeColorStyle": { # A color value. # The color of the org chart nodes.
+                    # If node_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "selectedNodeColorStyle": { # A color value. # The color of the selected org chart nodes.
+                    # If selected_node_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "nodeSize": "A String", # The size of the org chart nodes.
               },
             },
           },
         ],
+        "filterViews": [ # The filter views in this sheet.
+          { # A filter view.
+            "title": "A String", # The name of the filter view.
+            "namedRangeId": "A String", # The named range this filter view is backed by, if any.
+                #
+                # When writing, only one of range or named_range_id
+                # may be set.
+            "filterViewId": 42, # The ID of the filter view.
+            "range": { # A range on a sheet. # The range this filter view covers.
+                #
+                # When writing, only one of range or named_range_id
+                # may be set.
+                # All indexes are zero-based.
+                # Indexes are half open, e.g the start index is inclusive
+                # and the end index is exclusive -- [start_index, end_index).
+                # Missing indexes indicate the range is unbounded on that side.
+                #
+                # For example, if `"Sheet1"` is sheet ID 0, then:
+                #
+                #   `Sheet1!A1:A1 == sheet_id: 0,
+                #                   start_row_index: 0, end_row_index: 1,
+                #                   start_column_index: 0, end_column_index: 1`
+                #
+                #   `Sheet1!A3:B4 == sheet_id: 0,
+                #                   start_row_index: 2, end_row_index: 4,
+                #                   start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A:B == sheet_id: 0,
+                #                 start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A5:B == sheet_id: 0,
+                #                  start_row_index: 4,
+                #                  start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1 == sheet_id:0`
+                #
+                # The start index must always be less than or equal to the end index.
+                # If the start index equals the end index, then the range is empty.
+                # Empty ranges are typically not meaningful and are usually rendered in the
+                # UI as `#REF!`.
+              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "sheetId": 42, # The sheet this range is on.
+              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            },
+            "sortSpecs": [ # The sort order per column. Later specifications are used when values
+                # are equal in the earlier specifications.
+              { # A sort order associated with a specific column or row.
+                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to sort by; cells with this foreground color are
+                    # sorted to the top. Mutually exclusive with background_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to sort by; cells with this fill color are sorted
+                    # to the top. Mutually exclusive with foreground_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "foregroundColorStyle": { # A color value. # The foreground color to sort by; cells with this foreground color are
+                    # sorted to the top. Mutually exclusive with background_color, and must
+                    # be an RGB-type color. If foreground_color is also set, this field takes
+                    # precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "backgroundColorStyle": { # A color value. # The background fill color to sort by; cells with this fill color are sorted
+                    # to the top. Mutually exclusive with foreground_color, and must be an
+                    # RGB-type color. If background_color is also set, this field takes
+                    # precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "sortOrder": "A String", # The order data should be sorted.
+                "dimensionIndex": 42, # The dimension the sort should be applied to.
+              },
+            ],
+            "criteria": { # The criteria for showing/hiding values per column.
+                # The map's key is the column index, and the value is the criteria for
+                # that column.
+              "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
+                "visibleBackgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to filter by; only cells with this fill color are
+                    # shown. Mutually exclusive with visible_foreground_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "hiddenValues": [ # Values that should be hidden.
+                  "A String",
+                ],
+                "visibleBackgroundColorStyle": { # A color value. # The background fill color to filter by; only cells with this fill color are
+                    # shown. This field is mutually exclusive with visible_foreground_color,
+                    # and must be set to an RGB-type color. If visible_background_color is
+                    # also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColorStyle": { # A color value. # The foreground color to filter by; only cells with this foreground color
+                    # are shown. This field is mutually exclusive with
+                    # visible_background_color, and must be set to an RGB-type color. If
+                    # visible_foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to filter by; only cells with this foreground color
+                    # are shown. Mutually exclusive with visible_background_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
+                    # (This does not override hidden_values -- if a value is listed there,
+                    #  it will still be hidden.)
+                    # BooleanConditions are used by conditional formatting,
+                    # data validation, and the criteria in filters.
+                  "values": [ # The values of the condition. The number of supported values depends
+                      # on the condition type.  Some support zero values,
+                      # others one or two values,
+                      # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                    { # The value of the condition.
+                      "relativeDate": "A String", # A relative date (based on the current date).
+                          # Valid only if the type is
+                          # DATE_BEFORE,
+                          # DATE_AFTER,
+                          # DATE_ON_OR_BEFORE or
+                          # DATE_ON_OR_AFTER.
+                          #
+                          # Relative dates are not supported in data validation.
+                          # They are supported only in conditional formatting and
+                          # conditional filters.
+                      "userEnteredValue": "A String", # A value the condition is based on.
+                          # The value is parsed as if the user typed into a cell.
+                          # Formulas are supported (and must begin with an `=` or a '+').
+                    },
+                  ],
+                  "type": "A String", # The type of condition.
+                },
+              },
+            },
+          },
+        ],
+        "slicers": [ # The slicers on this sheet.
+          { # A slicer in a sheet.
+            "position": { # The position of an embedded object such as a chart. # The position of the slicer. Note that slicer can be positioned only on
+                # existing sheet. Also, width and height of slicer can be automatically
+                # adjusted to keep it within permitted limits.
+              "newSheet": True or False, # If true, the embedded object is put on a new sheet whose ID
+                  # is chosen for you. Used only when writing.
+              "sheetId": 42, # The sheet this is on. Set only if the embedded object
+                  # is on its own sheet. Must be non-negative.
+              "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid.
+                "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to.
+                    # All indexes are zero-based.
+                  "rowIndex": 42, # The row index of the coordinate.
+                  "columnIndex": 42, # The column index of the coordinate.
+                  "sheetId": 42, # The sheet this coordinate is on.
+                },
+                "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
+                    # from the anchor cell.
+                "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
+                "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
+                    # from the anchor cell.
+                "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
+              },
+            },
+            "spec": { # The specifications of a slicer. # The specification of the slicer.
+              "backgroundColorStyle": { # A color value. # The background color of the slicer.
+                  # If background_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "dataRange": { # A range on a sheet. # The data range of the slicer.
+                  # All indexes are zero-based.
+                  # Indexes are half open, e.g the start index is inclusive
+                  # and the end index is exclusive -- [start_index, end_index).
+                  # Missing indexes indicate the range is unbounded on that side.
+                  #
+                  # For example, if `"Sheet1"` is sheet ID 0, then:
+                  #
+                  #   `Sheet1!A1:A1 == sheet_id: 0,
+                  #                   start_row_index: 0, end_row_index: 1,
+                  #                   start_column_index: 0, end_column_index: 1`
+                  #
+                  #   `Sheet1!A3:B4 == sheet_id: 0,
+                  #                   start_row_index: 2, end_row_index: 4,
+                  #                   start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1!A:B == sheet_id: 0,
+                  #                 start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1!A5:B == sheet_id: 0,
+                  #                  start_row_index: 4,
+                  #                  start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1 == sheet_id:0`
+                  #
+                  # The start index must always be less than or equal to the end index.
+                  # If the start index equals the end index, then the range is empty.
+                  # Empty ranges are typically not meaningful and are usually rendered in the
+                  # UI as `#REF!`.
+                "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "sheetId": 42, # The sheet this range is on.
+                "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              },
+              "title": "A String", # The title of the slicer.
+              "applyToPivotTables": True or False, # True if the filter should apply to pivot tables.
+                  # If not set, default to `True`.
+              "columnIndex": 42, # The column index in the data table on which the filter is applied to.
+              "horizontalAlignment": "A String", # The horizontal alignment of title in the slicer.
+                  # If unspecified, defaults to `LEFT`
+              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the slicer.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "textFormat": { # The format of a run of text in a cell. # The text format of title in the slicer.
+                  # Absent values indicate that the field isn't specified.
+                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "bold": True or False, # True if the text is bold.
+                "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                    # If foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "strikethrough": True or False, # True if the text has a strikethrough.
+                "fontFamily": "A String", # The font family.
+                "fontSize": 42, # The size of the font.
+                "italic": True or False, # True if the text is italicized.
+                "underline": True or False, # True if the text is underlined.
+              },
+              "filterCriteria": { # Criteria for showing/hiding rows in a filter or filter view. # The filtering criteria of the slicer.
+                "visibleBackgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to filter by; only cells with this fill color are
+                    # shown. Mutually exclusive with visible_foreground_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "hiddenValues": [ # Values that should be hidden.
+                  "A String",
+                ],
+                "visibleBackgroundColorStyle": { # A color value. # The background fill color to filter by; only cells with this fill color are
+                    # shown. This field is mutually exclusive with visible_foreground_color,
+                    # and must be set to an RGB-type color. If visible_background_color is
+                    # also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColorStyle": { # A color value. # The foreground color to filter by; only cells with this foreground color
+                    # are shown. This field is mutually exclusive with
+                    # visible_background_color, and must be set to an RGB-type color. If
+                    # visible_foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to filter by; only cells with this foreground color
+                    # are shown. Mutually exclusive with visible_background_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
+                    # (This does not override hidden_values -- if a value is listed there,
+                    #  it will still be hidden.)
+                    # BooleanConditions are used by conditional formatting,
+                    # data validation, and the criteria in filters.
+                  "values": [ # The values of the condition. The number of supported values depends
+                      # on the condition type.  Some support zero values,
+                      # others one or two values,
+                      # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                    { # The value of the condition.
+                      "relativeDate": "A String", # A relative date (based on the current date).
+                          # Valid only if the type is
+                          # DATE_BEFORE,
+                          # DATE_AFTER,
+                          # DATE_ON_OR_BEFORE or
+                          # DATE_ON_OR_AFTER.
+                          #
+                          # Relative dates are not supported in data validation.
+                          # They are supported only in conditional formatting and
+                          # conditional filters.
+                      "userEnteredValue": "A String", # A value the condition is based on.
+                          # The value is parsed as if the user typed into a cell.
+                          # Formulas are supported (and must begin with an `=` or a '+').
+                    },
+                  ],
+                  "type": "A String", # The type of condition.
+                },
+              },
+            },
+            "slicerId": 42, # The ID of the slicer.
+          },
+        ],
+        "properties": { # Properties of a sheet. # The properties of the sheet.
+          "sheetType": "A String", # The type of sheet. Defaults to GRID.
+              # This field cannot be changed once set.
+          "index": 42, # The index of the sheet within the spreadsheet.
+              # When adding or updating sheet properties, if this field
+              # is excluded then the sheet is added or moved to the end
+              # of the sheet list. When updating sheet indices or inserting
+              # sheets, movement is considered in "before the move" indexes.
+              # For example, if there were 3 sheets (S1, S2, S3) in order to
+              # move S1 ahead of S2 the index would have to be set to 2. A sheet
+              # index update request is ignored if the requested index is
+              # identical to the sheets current index or if the requested new
+              # index is equal to the current sheet index + 1.
+          "title": "A String", # The name of the sheet.
+          "gridProperties": { # Properties of a grid. # Additional properties of the sheet if this sheet is a grid.
+              # (If the sheet is an object sheet, containing a chart or image, then
+              # this field will be absent.)
+              # When writing it is an error to set any grid properties on non-grid sheets.
+            "columnCount": 42, # The number of columns in the grid.
+            "rowGroupControlAfter": True or False, # True if the row grouping control toggle is shown after the group.
+            "columnGroupControlAfter": True or False, # True if the column grouping control toggle is shown after the group.
+            "frozenRowCount": 42, # The number of rows that are frozen in the grid.
+            "frozenColumnCount": 42, # The number of columns that are frozen in the grid.
+            "rowCount": 42, # The number of rows in the grid.
+            "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI.
+          },
+          "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet.
+          "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI.
+              # for simplicity of conversion to/from color representations in various
+              # languages over compactness; for example, the fields of this representation
+              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+              # method in iOS; and, with just a little work, it can be easily formatted into
+              # a CSS "rgba()" string in JavaScript, as well.
+              #
+              # Note: this proto does not carry information about the absolute color space
+              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+              # space.
+              #
+              # Example (Java):
+              #
+              #      import com.google.type.Color;
+              #
+              #      // ...
+              #      public static java.awt.Color fromProto(Color protocolor) {
+              #        float alpha = protocolor.hasAlpha()
+              #            ? protocolor.getAlpha().getValue()
+              #            : 1.0;
+              #
+              #        return new java.awt.Color(
+              #            protocolor.getRed(),
+              #            protocolor.getGreen(),
+              #            protocolor.getBlue(),
+              #            alpha);
+              #      }
+              #
+              #      public static Color toProto(java.awt.Color color) {
+              #        float red = (float) color.getRed();
+              #        float green = (float) color.getGreen();
+              #        float blue = (float) color.getBlue();
+              #        float denominator = 255.0;
+              #        Color.Builder resultBuilder =
+              #            Color
+              #                .newBuilder()
+              #                .setRed(red / denominator)
+              #                .setGreen(green / denominator)
+              #                .setBlue(blue / denominator);
+              #        int alpha = color.getAlpha();
+              #        if (alpha != 255) {
+              #          result.setAlpha(
+              #              FloatValue
+              #                  .newBuilder()
+              #                  .setValue(((float) alpha) / denominator)
+              #                  .build());
+              #        }
+              #        return resultBuilder.build();
+              #      }
+              #      // ...
+              #
+              # Example (iOS / Obj-C):
+              #
+              #      // ...
+              #      static UIColor* fromProto(Color* protocolor) {
+              #         float red = [protocolor red];
+              #         float green = [protocolor green];
+              #         float blue = [protocolor blue];
+              #         FloatValue* alpha_wrapper = [protocolor alpha];
+              #         float alpha = 1.0;
+              #         if (alpha_wrapper != nil) {
+              #           alpha = [alpha_wrapper value];
+              #         }
+              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+              #      }
+              #
+              #      static Color* toProto(UIColor* color) {
+              #          CGFloat red, green, blue, alpha;
+              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+              #            return nil;
+              #          }
+              #          Color* result = [[Color alloc] init];
+              #          [result setRed:red];
+              #          [result setGreen:green];
+              #          [result setBlue:blue];
+              #          if (alpha &lt;= 0.9999) {
+              #            [result setAlpha:floatWrapperWithValue(alpha)];
+              #          }
+              #          [result autorelease];
+              #          return result;
+              #     }
+              #     // ...
+              #
+              #  Example (JavaScript):
+              #
+              #     // ...
+              #
+              #     var protoToCssColor = function(rgb_color) {
+              #        var redFrac = rgb_color.red || 0.0;
+              #        var greenFrac = rgb_color.green || 0.0;
+              #        var blueFrac = rgb_color.blue || 0.0;
+              #        var red = Math.floor(redFrac * 255);
+              #        var green = Math.floor(greenFrac * 255);
+              #        var blue = Math.floor(blueFrac * 255);
+              #
+              #        if (!('alpha' in rgb_color)) {
+              #           return rgbToCssColor_(red, green, blue);
+              #        }
+              #
+              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+              #        var rgbParams = [red, green, blue].join(',');
+              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+              #     };
+              #
+              #     var rgbToCssColor_ = function(red, green, blue) {
+              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+              #       var hexString = rgbNumber.toString(16);
+              #       var missingZeros = 6 - hexString.length;
+              #       var resultBuilder = ['#'];
+              #       for (var i = 0; i &lt; missingZeros; i++) {
+              #          resultBuilder.push('0');
+              #       }
+              #       resultBuilder.push(hexString);
+              #       return resultBuilder.join('');
+              #     };
+              #
+              #     // ...
+            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                # the final pixel color is defined by the equation:
+                #
+                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                #
+                # This means that a value of 1.0 corresponds to a solid color, whereas
+                # a value of 0.0 corresponds to a completely transparent color. This
+                # uses a wrapper message rather than a simple float scalar so that it is
+                # possible to distinguish between a default value and the value being unset.
+                # If omitted, this color object is to be rendered as a solid color
+                # (as if the alpha value had been explicitly given with a value of 1.0).
+            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+          },
+          "hidden": True or False, # True if the sheet is hidden in the UI, false if it's visible.
+          "tabColorStyle": { # A color value. # The color of the tab in the UI.
+              # If tab_color is also set, this field takes precedence.
+            "themeColor": "A String", # Theme color.
+            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
+          },
+          "sheetId": 42, # The ID of the sheet. Must be non-negative.
+              # This field cannot be changed once set.
+        },
         "protectedRanges": [ # The protected ranges in this sheet.
           { # A protected range.
             "unprotectedRanges": [ # The list of unprotected ranges within a protected sheet.
@@ -65697,6 +139440,21 @@
                 #
                 # When writing, only one of range or named_range_id
                 # may be set.
+            "protectedRangeId": 42, # The ID of the protected range.
+                # This field is read-only.
+            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
+                # This field is only visible to users with edit access to the protected
+                # range and the document.
+                # Editors are not supported with warning_only protection.
+              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
+                  # range.  Domain protection is only supported on documents within a domain.
+              "users": [ # The email addresses of users with edit access to the protected range.
+                "A String",
+              ],
+              "groups": [ # The email addresses of groups with edit access to the protected range.
+                "A String",
+              ],
+            },
             "range": { # A range on a sheet. # The range that is being protected.
                 # The range may be fully unbounded, in which case this is considered
                 # a protected sheet.
@@ -65737,21 +139495,6 @@
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
               "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
-            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
-                # This field is only visible to users with edit access to the protected
-                # range and the document.
-                # Editors are not supported with warning_only protection.
-              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
-                  # range.  Domain protection is only supported on documents within a domain.
-              "users": [ # The email addresses of users with edit access to the protected range.
-                "A String",
-              ],
-              "groups": [ # The email addresses of groups with edit access to the protected range.
-                "A String",
-              ],
-            },
-            "protectedRangeId": 42, # The ID of the protected range.
-                # This field is read-only.
             "warningOnly": True or False, # True if this protected range will show a warning when editing.
                 # Warning-based protection means that every user can edit data in the
                 # protected range, except editing will prompt a warning asking the user
@@ -65764,6 +139507,7 @@
           },
         ],
         "data": [ # Data in the grid, if this is a grid sheet.
+            #
             # The number of GridData objects returned is dependent on the number of
             # ranges requested on this sheet. For example, if this is representing
             # `Sheet1`, and the spreadsheet was requested with ranges
@@ -65803,8 +139547,8 @@
                         "sheetId": 42, # The sheet this span is on.
                         "dimension": "A String", # The dimension of the span.
                       },
-                      "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                       "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+                      "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                     },
                     "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
                         # specified.
@@ -65849,8 +139593,8 @@
                         "sheetId": 42, # The sheet this span is on.
                         "dimension": "A String", # The dimension of the span.
                       },
-                      "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                       "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+                      "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                     },
                     "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
                         # specified.
@@ -65921,15 +139665,15 @@
                               "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                   # (Note that formulaValue is not valid,
                                   #  because the values will be calculated.)
-                                "numberValue": 3.14, # Represents a double value.
-                                    # Note: Dates, Times and DateTimes are represented as doubles in
-                                    # "serial number" format.
-                                "boolValue": True or False, # Represents a boolean value.
-                                "formulaValue": "A String", # Represents a formula.
                                 "stringValue": "A String", # Represents a string value.
                                     # Leading single quotes are not included. For example, if the user typed
                                     # `'123` into the UI, this would be represented as a `stringValue` of
                                     # `"123"`.
+                                "boolValue": True or False, # Represents a boolean value.
+                                "numberValue": 3.14, # Represents a double value.
+                                    # Note: Dates, Times and DateTimes are represented as doubles in
+                                    # "serial number" format.
+                                "formulaValue": "A String", # Represents a formula.
                                 "errorValue": { # An error in a cell. # Represents an error.
                                     # This field is read-only.
                                   "message": "A String", # A message with more information about the error
@@ -65943,7 +139687,7 @@
                               # If not specified, sorting is alphabetical by this group's values.
                             "buckets": [ # Determines the bucket from which values are chosen to sort.
                                 #
-                                # For example, in a pivot table with one row group & two column groups,
+                                # For example, in a pivot table with one row group &amp; two column groups,
                                 # the row group can list up to two values. The first value corresponds
                                 # to a value within the first column group, and the second value
                                 # corresponds to a value in the second column group.  If no values
@@ -65951,15 +139695,15 @@
                                 # to the "Grand Total" over the column groups. If a single value is listed,
                                 # this would correspond to using the "Total" of that bucket.
                               { # The kinds of value that a cell in a spreadsheet can have.
-                                "numberValue": 3.14, # Represents a double value.
-                                    # Note: Dates, Times and DateTimes are represented as doubles in
-                                    # "serial number" format.
-                                "boolValue": True or False, # Represents a boolean value.
-                                "formulaValue": "A String", # Represents a formula.
                                 "stringValue": "A String", # Represents a string value.
                                     # Leading single quotes are not included. For example, if the user typed
                                     # `'123` into the UI, this would be represented as a `stringValue` of
                                     # `"123"`.
+                                "boolValue": True or False, # Represents a boolean value.
+                                "numberValue": 3.14, # Represents a double value.
+                                    # Note: Dates, Times and DateTimes are represented as doubles in
+                                    # "serial number" format.
+                                "formulaValue": "A String", # Represents a formula.
                                 "errorValue": { # An error in a cell. # Represents an error.
                                     # This field is read-only.
                                   "message": "A String", # A message with more information about the error
@@ -65972,6 +139716,11 @@
                                 # grouping should be sorted by.
                           },
                           "sortOrder": "A String", # The order the values in this group should be sorted.
+                          "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
+                              #
+                              # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                              # means this group refers to column `C`, whereas the offset `1` would
+                              # refer to column `D`.
                           "groupRule": { # An optional setting on a PivotGroup that defines buckets for the values # The group rule to apply to this row/column group.
                               # in the source data column rather than breaking out each individual value.
                               # Only one PivotGroup with a group rule may be added for each column in
@@ -66004,10 +139753,10 @@
                                 #     +-------------+-------------------+
                                 #     | Grouped Age | AVERAGE of Amount |
                                 #     +-------------+-------------------+
-                                #     | < 25        |            $19.34 |
+                                #     | &lt; 25        |            $19.34 |
                                 #     | 25-45       |            $31.43 |
                                 #     | 45-65       |            $35.87 |
-                                #     | > 65        |            $27.55 |
+                                #     | &gt; 65        |            $27.55 |
                                 #     +-------------+-------------------+
                                 #     | Grand Total |            $29.12 |
                                 #     +-------------+-------------------+
@@ -66054,15 +139803,15 @@
                                       # group within a given ManualRule. Items that do not appear in any
                                       # group will appear on their own.
                                     { # The kinds of value that a cell in a spreadsheet can have.
-                                      "numberValue": 3.14, # Represents a double value.
-                                          # Note: Dates, Times and DateTimes are represented as doubles in
-                                          # "serial number" format.
-                                      "boolValue": True or False, # Represents a boolean value.
-                                      "formulaValue": "A String", # Represents a formula.
                                       "stringValue": "A String", # Represents a string value.
                                           # Leading single quotes are not included. For example, if the user typed
                                           # `'123` into the UI, this would be represented as a `stringValue` of
                                           # `"123"`.
+                                      "boolValue": True or False, # Represents a boolean value.
+                                      "numberValue": 3.14, # Represents a double value.
+                                          # Note: Dates, Times and DateTimes are represented as doubles in
+                                          # "serial number" format.
+                                      "formulaValue": "A String", # Represents a formula.
                                       "errorValue": { # An error in a cell. # Represents an error.
                                           # This field is read-only.
                                         "message": "A String", # A message with more information about the error
@@ -66073,15 +139822,15 @@
                                   ],
                                   "groupName": { # The kinds of value that a cell in a spreadsheet can have. # The group name, which must be a string. Each group in a given
                                       # ManualRule must have a unique group name.
-                                    "numberValue": 3.14, # Represents a double value.
-                                        # Note: Dates, Times and DateTimes are represented as doubles in
-                                        # "serial number" format.
-                                    "boolValue": True or False, # Represents a boolean value.
-                                    "formulaValue": "A String", # Represents a formula.
                                     "stringValue": "A String", # Represents a string value.
                                         # Leading single quotes are not included. For example, if the user typed
                                         # `'123` into the UI, this would be represented as a `stringValue` of
                                         # `"123"`.
+                                    "boolValue": True or False, # Represents a boolean value.
+                                    "numberValue": 3.14, # Represents a double value.
+                                        # Note: Dates, Times and DateTimes are represented as doubles in
+                                        # "serial number" format.
+                                    "formulaValue": "A String", # Represents a formula.
                                     "errorValue": { # An error in a cell. # Represents an error.
                                         # This field is read-only.
                                       "message": "A String", # A message with more information about the error
@@ -66118,11 +139867,6 @@
                               "type": "A String", # The type of date-time grouping to apply.
                             },
                           },
-                          "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
-                              #
-                              # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                              # means this group refers to column `C`, whereas the offset `1` would refer
-                              # to column `D`.
                         },
                       ],
                       "source": { # A range on a sheet. # The range the pivot table is reading data from.
@@ -66164,18 +139908,18 @@
                         { # The definition of how a value in a pivot table should be calculated.
                           "formula": "A String", # A custom formula to calculate the value.  The formula must start
                               # with an `=` character.
-                          "name": "A String", # A name to use for the value.
-                          "sourceColumnOffset": 42, # The column offset of the source range that this value reads from.
-                              #
-                              # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                              # means this value refers to column `C`, whereas the offset `1` would
-                              # refer to column `D`.
                           "summarizeFunction": "A String", # A function to summarize the value.
                               # If formula is set, the only supported values are
                               # SUM and
                               # CUSTOM.
                               # If sourceColumnOffset is set, then `CUSTOM`
                               # is not supported.
+                          "name": "A String", # A name to use for the value.
+                          "sourceColumnOffset": 42, # The column offset of the source range that this value reads from.
+                              #
+                              # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                              # means this value refers to column `C`, whereas the offset `1` would
+                              # refer to column `D`.
                           "calculatedDisplayType": "A String", # If specified, indicates that pivot values should be displayed as
                               # the result of a calculation with another pivot value. For example, if
                               # calculated_display_type is specified as PERCENT_OF_GRAND_TOTAL, all the
@@ -66241,15 +139985,15 @@
                               "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                   # (Note that formulaValue is not valid,
                                   #  because the values will be calculated.)
-                                "numberValue": 3.14, # Represents a double value.
-                                    # Note: Dates, Times and DateTimes are represented as doubles in
-                                    # "serial number" format.
-                                "boolValue": True or False, # Represents a boolean value.
-                                "formulaValue": "A String", # Represents a formula.
                                 "stringValue": "A String", # Represents a string value.
                                     # Leading single quotes are not included. For example, if the user typed
                                     # `'123` into the UI, this would be represented as a `stringValue` of
                                     # `"123"`.
+                                "boolValue": True or False, # Represents a boolean value.
+                                "numberValue": 3.14, # Represents a double value.
+                                    # Note: Dates, Times and DateTimes are represented as doubles in
+                                    # "serial number" format.
+                                "formulaValue": "A String", # Represents a formula.
                                 "errorValue": { # An error in a cell. # Represents an error.
                                     # This field is read-only.
                                   "message": "A String", # A message with more information about the error
@@ -66263,7 +140007,7 @@
                               # If not specified, sorting is alphabetical by this group's values.
                             "buckets": [ # Determines the bucket from which values are chosen to sort.
                                 #
-                                # For example, in a pivot table with one row group & two column groups,
+                                # For example, in a pivot table with one row group &amp; two column groups,
                                 # the row group can list up to two values. The first value corresponds
                                 # to a value within the first column group, and the second value
                                 # corresponds to a value in the second column group.  If no values
@@ -66271,15 +140015,15 @@
                                 # to the "Grand Total" over the column groups. If a single value is listed,
                                 # this would correspond to using the "Total" of that bucket.
                               { # The kinds of value that a cell in a spreadsheet can have.
-                                "numberValue": 3.14, # Represents a double value.
-                                    # Note: Dates, Times and DateTimes are represented as doubles in
-                                    # "serial number" format.
-                                "boolValue": True or False, # Represents a boolean value.
-                                "formulaValue": "A String", # Represents a formula.
                                 "stringValue": "A String", # Represents a string value.
                                     # Leading single quotes are not included. For example, if the user typed
                                     # `'123` into the UI, this would be represented as a `stringValue` of
                                     # `"123"`.
+                                "boolValue": True or False, # Represents a boolean value.
+                                "numberValue": 3.14, # Represents a double value.
+                                    # Note: Dates, Times and DateTimes are represented as doubles in
+                                    # "serial number" format.
+                                "formulaValue": "A String", # Represents a formula.
                                 "errorValue": { # An error in a cell. # Represents an error.
                                     # This field is read-only.
                                   "message": "A String", # A message with more information about the error
@@ -66292,6 +140036,11 @@
                                 # grouping should be sorted by.
                           },
                           "sortOrder": "A String", # The order the values in this group should be sorted.
+                          "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
+                              #
+                              # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                              # means this group refers to column `C`, whereas the offset `1` would
+                              # refer to column `D`.
                           "groupRule": { # An optional setting on a PivotGroup that defines buckets for the values # The group rule to apply to this row/column group.
                               # in the source data column rather than breaking out each individual value.
                               # Only one PivotGroup with a group rule may be added for each column in
@@ -66324,10 +140073,10 @@
                                 #     +-------------+-------------------+
                                 #     | Grouped Age | AVERAGE of Amount |
                                 #     +-------------+-------------------+
-                                #     | < 25        |            $19.34 |
+                                #     | &lt; 25        |            $19.34 |
                                 #     | 25-45       |            $31.43 |
                                 #     | 45-65       |            $35.87 |
-                                #     | > 65        |            $27.55 |
+                                #     | &gt; 65        |            $27.55 |
                                 #     +-------------+-------------------+
                                 #     | Grand Total |            $29.12 |
                                 #     +-------------+-------------------+
@@ -66374,15 +140123,15 @@
                                       # group within a given ManualRule. Items that do not appear in any
                                       # group will appear on their own.
                                     { # The kinds of value that a cell in a spreadsheet can have.
-                                      "numberValue": 3.14, # Represents a double value.
-                                          # Note: Dates, Times and DateTimes are represented as doubles in
-                                          # "serial number" format.
-                                      "boolValue": True or False, # Represents a boolean value.
-                                      "formulaValue": "A String", # Represents a formula.
                                       "stringValue": "A String", # Represents a string value.
                                           # Leading single quotes are not included. For example, if the user typed
                                           # `'123` into the UI, this would be represented as a `stringValue` of
                                           # `"123"`.
+                                      "boolValue": True or False, # Represents a boolean value.
+                                      "numberValue": 3.14, # Represents a double value.
+                                          # Note: Dates, Times and DateTimes are represented as doubles in
+                                          # "serial number" format.
+                                      "formulaValue": "A String", # Represents a formula.
                                       "errorValue": { # An error in a cell. # Represents an error.
                                           # This field is read-only.
                                         "message": "A String", # A message with more information about the error
@@ -66393,15 +140142,15 @@
                                   ],
                                   "groupName": { # The kinds of value that a cell in a spreadsheet can have. # The group name, which must be a string. Each group in a given
                                       # ManualRule must have a unique group name.
-                                    "numberValue": 3.14, # Represents a double value.
-                                        # Note: Dates, Times and DateTimes are represented as doubles in
-                                        # "serial number" format.
-                                    "boolValue": True or False, # Represents a boolean value.
-                                    "formulaValue": "A String", # Represents a formula.
                                     "stringValue": "A String", # Represents a string value.
                                         # Leading single quotes are not included. For example, if the user typed
                                         # `'123` into the UI, this would be represented as a `stringValue` of
                                         # `"123"`.
+                                    "boolValue": True or False, # Represents a boolean value.
+                                    "numberValue": 3.14, # Represents a double value.
+                                        # Note: Dates, Times and DateTimes are represented as doubles in
+                                        # "serial number" format.
+                                    "formulaValue": "A String", # Represents a formula.
                                     "errorValue": { # An error in a cell. # Represents an error.
                                         # This field is read-only.
                                       "message": "A String", # A message with more information about the error
@@ -66438,11 +140187,6 @@
                               "type": "A String", # The type of date-time grouping to apply.
                             },
                           },
-                          "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
-                              #
-                              # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                              # means this group refers to column `C`, whereas the offset `1` would refer
-                              # to column `D`.
                         },
                       ],
                     },
@@ -66454,15 +140198,15 @@
                         # the calculated value.  For cells with literals, this is
                         # the same as the user_entered_value.
                         # This field is read-only.
-                      "numberValue": 3.14, # Represents a double value.
-                          # Note: Dates, Times and DateTimes are represented as doubles in
-                          # "serial number" format.
-                      "boolValue": True or False, # Represents a boolean value.
-                      "formulaValue": "A String", # Represents a formula.
                       "stringValue": "A String", # Represents a string value.
                           # Leading single quotes are not included. For example, if the user typed
                           # `'123` into the UI, this would be represented as a `stringValue` of
                           # `"123"`.
+                      "boolValue": True or False, # Represents a boolean value.
+                      "numberValue": 3.14, # Represents a double value.
+                          # Note: Dates, Times and DateTimes are represented as doubles in
+                          # "serial number" format.
+                      "formulaValue": "A String", # Represents a formula.
                       "errorValue": { # An error in a cell. # Represents an error.
                           # This field is read-only.
                         "message": "A String", # A message with more information about the error
@@ -66476,15 +140220,15 @@
                     "userEnteredValue": { # The kinds of value that a cell in a spreadsheet can have. # The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()`
                         # Note: Dates, Times and DateTimes are represented as doubles in
                         # serial number format.
-                      "numberValue": 3.14, # Represents a double value.
-                          # Note: Dates, Times and DateTimes are represented as doubles in
-                          # "serial number" format.
-                      "boolValue": True or False, # Represents a boolean value.
-                      "formulaValue": "A String", # Represents a formula.
                       "stringValue": "A String", # Represents a string value.
                           # Leading single quotes are not included. For example, if the user typed
                           # `'123` into the UI, this would be represented as a `stringValue` of
                           # `"123"`.
+                      "boolValue": True or False, # Represents a boolean value.
+                      "numberValue": 3.14, # Represents a double value.
+                          # Note: Dates, Times and DateTimes are represented as doubles in
+                          # "serial number" format.
+                      "formulaValue": "A String", # Represents a formula.
                       "errorValue": { # An error in a cell. # Represents an error.
                           # This field is read-only.
                         "message": "A String", # A message with more information about the error
@@ -66499,6 +140243,13 @@
                         # If the effective format is the default format, effective format will
                         # not be written.
                         # This field is read-only.
+                      "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                          # When updating padding, every field must be specified.
+                        "top": 42, # The top padding of the cell.
+                        "left": 42, # The left padding of the cell.
+                        "right": 42, # The right padding of the cell.
+                        "bottom": 42, # The bottom padding of the cell.
+                      },
                       "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                         "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                             # the user's locale will be used if necessary for the given type.
@@ -66508,12 +140259,143 @@
                             # When writing, this field must be set.
                       },
                       "textDirection": "A String", # The direction of the text in the cell.
-                      "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                          # When updating padding, every field must be specified.
-                        "top": 42, # The top padding of the cell.
-                        "left": 42, # The left padding of the cell.
-                        "right": 42, # The right padding of the cell.
-                        "bottom": 42, # The bottom padding of the cell.
+                      "backgroundColorStyle": { # A color value. # The background color of the cell.
+                          # If background_color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
                       },
                       "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                       "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -66586,14 +140468,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -66623,11 +140505,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -66723,14 +140605,14 @@
                               #
                               #      static Color* toProto(UIColor* color) {
                               #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                               #            return nil;
                               #          }
                               #          Color* result = [[Color alloc] init];
                               #          [result setRed:red];
                               #          [result setGreen:green];
                               #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
+                              #          if (alpha &lt;= 0.9999) {
                               #            [result setAlpha:floatWrapperWithValue(alpha)];
                               #          }
                               #          [result autorelease];
@@ -66760,11 +140642,11 @@
                               #     };
                               #
                               #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                               #       var hexString = rgbNumber.toString(16);
                               #       var missingZeros = 6 - hexString.length;
                               #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
                               #          resultBuilder.push('0');
                               #       }
                               #       resultBuilder.push(hexString);
@@ -66789,284 +140671,144 @@
                           },
                           "width": 42, # The width of the border, in pixels.
                               # Deprecated; the width is determined by the "style" field.
-                          "style": "A String", # The style of the border.
-                        },
-                        "right": { # A border along a cell. # The right border of the cell.
-                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                              # for simplicity of conversion to/from color representations in various
-                              # languages over compactness; for example, the fields of this representation
-                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                              # method in iOS; and, with just a little work, it can be easily formatted into
-                              # a CSS "rgba()" string in JavaScript, as well.
-                              #
-                              # Note: this proto does not carry information about the absolute color space
-                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                              # space.
-                              #
-                              # Example (Java):
-                              #
-                              #      import com.google.type.Color;
-                              #
-                              #      // ...
-                              #      public static java.awt.Color fromProto(Color protocolor) {
-                              #        float alpha = protocolor.hasAlpha()
-                              #            ? protocolor.getAlpha().getValue()
-                              #            : 1.0;
-                              #
-                              #        return new java.awt.Color(
-                              #            protocolor.getRed(),
-                              #            protocolor.getGreen(),
-                              #            protocolor.getBlue(),
-                              #            alpha);
-                              #      }
-                              #
-                              #      public static Color toProto(java.awt.Color color) {
-                              #        float red = (float) color.getRed();
-                              #        float green = (float) color.getGreen();
-                              #        float blue = (float) color.getBlue();
-                              #        float denominator = 255.0;
-                              #        Color.Builder resultBuilder =
-                              #            Color
-                              #                .newBuilder()
-                              #                .setRed(red / denominator)
-                              #                .setGreen(green / denominator)
-                              #                .setBlue(blue / denominator);
-                              #        int alpha = color.getAlpha();
-                              #        if (alpha != 255) {
-                              #          result.setAlpha(
-                              #              FloatValue
-                              #                  .newBuilder()
-                              #                  .setValue(((float) alpha) / denominator)
-                              #                  .build());
-                              #        }
-                              #        return resultBuilder.build();
-                              #      }
-                              #      // ...
-                              #
-                              # Example (iOS / Obj-C):
-                              #
-                              #      // ...
-                              #      static UIColor* fromProto(Color* protocolor) {
-                              #         float red = [protocolor red];
-                              #         float green = [protocolor green];
-                              #         float blue = [protocolor blue];
-                              #         FloatValue* alpha_wrapper = [protocolor alpha];
-                              #         float alpha = 1.0;
-                              #         if (alpha_wrapper != nil) {
-                              #           alpha = [alpha_wrapper value];
-                              #         }
-                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                              #      }
-                              #
-                              #      static Color* toProto(UIColor* color) {
-                              #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                              #            return nil;
-                              #          }
-                              #          Color* result = [[Color alloc] init];
-                              #          [result setRed:red];
-                              #          [result setGreen:green];
-                              #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
-                              #            [result setAlpha:floatWrapperWithValue(alpha)];
-                              #          }
-                              #          [result autorelease];
-                              #          return result;
-                              #     }
-                              #     // ...
-                              #
-                              #  Example (JavaScript):
-                              #
-                              #     // ...
-                              #
-                              #     var protoToCssColor = function(rgb_color) {
-                              #        var redFrac = rgb_color.red || 0.0;
-                              #        var greenFrac = rgb_color.green || 0.0;
-                              #        var blueFrac = rgb_color.blue || 0.0;
-                              #        var red = Math.floor(redFrac * 255);
-                              #        var green = Math.floor(greenFrac * 255);
-                              #        var blue = Math.floor(blueFrac * 255);
-                              #
-                              #        if (!('alpha' in rgb_color)) {
-                              #           return rgbToCssColor_(red, green, blue);
-                              #        }
-                              #
-                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                              #        var rgbParams = [red, green, blue].join(',');
-                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                              #     };
-                              #
-                              #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                              #       var hexString = rgbNumber.toString(16);
-                              #       var missingZeros = 6 - hexString.length;
-                              #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
-                              #          resultBuilder.push('0');
-                              #       }
-                              #       resultBuilder.push(hexString);
-                              #       return resultBuilder.join('');
-                              #     };
-                              #
-                              #     // ...
-                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                                # the final pixel color is defined by the equation:
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
                                 #
-                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
                                 #
-                                # This means that a value of 1.0 corresponds to a solid color, whereas
-                                # a value of 0.0 corresponds to a completely transparent color. This
-                                # uses a wrapper message rather than a simple float scalar so that it is
-                                # possible to distinguish between a default value and the value being unset.
-                                # If omitted, this color object is to be rendered as a solid color
-                                # (as if the alpha value had been explicitly given with a value of 1.0).
-                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
                           },
-                          "width": 42, # The width of the border, in pixels.
-                              # Deprecated; the width is determined by the "style" field.
-                          "style": "A String", # The style of the border.
-                        },
-                        "bottom": { # A border along a cell. # The bottom border of the cell.
-                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                              # for simplicity of conversion to/from color representations in various
-                              # languages over compactness; for example, the fields of this representation
-                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                              # method in iOS; and, with just a little work, it can be easily formatted into
-                              # a CSS "rgba()" string in JavaScript, as well.
-                              #
-                              # Note: this proto does not carry information about the absolute color space
-                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                              # space.
-                              #
-                              # Example (Java):
-                              #
-                              #      import com.google.type.Color;
-                              #
-                              #      // ...
-                              #      public static java.awt.Color fromProto(Color protocolor) {
-                              #        float alpha = protocolor.hasAlpha()
-                              #            ? protocolor.getAlpha().getValue()
-                              #            : 1.0;
-                              #
-                              #        return new java.awt.Color(
-                              #            protocolor.getRed(),
-                              #            protocolor.getGreen(),
-                              #            protocolor.getBlue(),
-                              #            alpha);
-                              #      }
-                              #
-                              #      public static Color toProto(java.awt.Color color) {
-                              #        float red = (float) color.getRed();
-                              #        float green = (float) color.getGreen();
-                              #        float blue = (float) color.getBlue();
-                              #        float denominator = 255.0;
-                              #        Color.Builder resultBuilder =
-                              #            Color
-                              #                .newBuilder()
-                              #                .setRed(red / denominator)
-                              #                .setGreen(green / denominator)
-                              #                .setBlue(blue / denominator);
-                              #        int alpha = color.getAlpha();
-                              #        if (alpha != 255) {
-                              #          result.setAlpha(
-                              #              FloatValue
-                              #                  .newBuilder()
-                              #                  .setValue(((float) alpha) / denominator)
-                              #                  .build());
-                              #        }
-                              #        return resultBuilder.build();
-                              #      }
-                              #      // ...
-                              #
-                              # Example (iOS / Obj-C):
-                              #
-                              #      // ...
-                              #      static UIColor* fromProto(Color* protocolor) {
-                              #         float red = [protocolor red];
-                              #         float green = [protocolor green];
-                              #         float blue = [protocolor blue];
-                              #         FloatValue* alpha_wrapper = [protocolor alpha];
-                              #         float alpha = 1.0;
-                              #         if (alpha_wrapper != nil) {
-                              #           alpha = [alpha_wrapper value];
-                              #         }
-                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                              #      }
-                              #
-                              #      static Color* toProto(UIColor* color) {
-                              #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                              #            return nil;
-                              #          }
-                              #          Color* result = [[Color alloc] init];
-                              #          [result setRed:red];
-                              #          [result setGreen:green];
-                              #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
-                              #            [result setAlpha:floatWrapperWithValue(alpha)];
-                              #          }
-                              #          [result autorelease];
-                              #          return result;
-                              #     }
-                              #     // ...
-                              #
-                              #  Example (JavaScript):
-                              #
-                              #     // ...
-                              #
-                              #     var protoToCssColor = function(rgb_color) {
-                              #        var redFrac = rgb_color.red || 0.0;
-                              #        var greenFrac = rgb_color.green || 0.0;
-                              #        var blueFrac = rgb_color.blue || 0.0;
-                              #        var red = Math.floor(redFrac * 255);
-                              #        var green = Math.floor(greenFrac * 255);
-                              #        var blue = Math.floor(blueFrac * 255);
-                              #
-                              #        if (!('alpha' in rgb_color)) {
-                              #           return rgbToCssColor_(red, green, blue);
-                              #        }
-                              #
-                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                              #        var rgbParams = [red, green, blue].join(',');
-                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                              #     };
-                              #
-                              #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                              #       var hexString = rgbNumber.toString(16);
-                              #       var missingZeros = 6 - hexString.length;
-                              #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
-                              #          resultBuilder.push('0');
-                              #       }
-                              #       resultBuilder.push(hexString);
-                              #       return resultBuilder.join('');
-                              #     };
-                              #
-                              #     // ...
-                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                                # the final pixel color is defined by the equation:
-                                #
-                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                                #
-                                # This means that a value of 1.0 corresponds to a solid color, whereas
-                                # a value of 0.0 corresponds to a completely transparent color. This
-                                # uses a wrapper message rather than a simple float scalar so that it is
-                                # possible to distinguish between a default value and the value being unset.
-                                # If omitted, this color object is to be rendered as a solid color
-                                # (as if the alpha value had been explicitly given with a value of 1.0).
-                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                          },
-                          "width": 42, # The width of the border, in pixels.
-                              # Deprecated; the width is determined by the "style" field.
                           "style": "A String", # The style of the border.
                         },
                         "left": { # A border along a cell. # The left border of the cell.
@@ -67140,14 +140882,14 @@
                               #
                               #      static Color* toProto(UIColor* color) {
                               #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                               #            return nil;
                               #          }
                               #          Color* result = [[Color alloc] init];
                               #          [result setRed:red];
                               #          [result setGreen:green];
                               #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
+                              #          if (alpha &lt;= 0.9999) {
                               #            [result setAlpha:floatWrapperWithValue(alpha)];
                               #          }
                               #          [result autorelease];
@@ -67177,11 +140919,11 @@
                               #     };
                               #
                               #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                               #       var hexString = rgbNumber.toString(16);
                               #       var missingZeros = 6 - hexString.length;
                               #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
                               #          resultBuilder.push('0');
                               #       }
                               #       resultBuilder.push(hexString);
@@ -67206,6 +140948,698 @@
                           },
                           "width": 42, # The width of the border, in pixels.
                               # Deprecated; the width is determined by the "style" field.
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                          },
+                          "style": "A String", # The style of the border.
+                        },
+                        "right": { # A border along a cell. # The right border of the cell.
+                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                          "width": 42, # The width of the border, in pixels.
+                              # Deprecated; the width is determined by the "style" field.
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                          },
+                          "style": "A String", # The style of the border.
+                        },
+                        "bottom": { # A border along a cell. # The bottom border of the cell.
+                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                          "width": 42, # The width of the border, in pixels.
+                              # Deprecated; the width is determined by the "style" field.
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                          },
                           "style": "A String", # The style of the border.
                         },
                       },
@@ -67303,14 +141737,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -67340,11 +141774,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -67368,6 +141802,144 @@
                           "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                         },
                         "bold": True or False, # True if the text is bold.
+                        "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                            # If foreground_color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
                         "strikethrough": True or False, # True if the text has a strikethrough.
                         "fontFamily": "A String", # The font family.
                         "fontSize": 42, # The size of the font.
@@ -67379,6 +141951,13 @@
                     "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell.
                         #
                         # When writing, the new format will be merged with the existing format.
+                      "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                          # When updating padding, every field must be specified.
+                        "top": 42, # The top padding of the cell.
+                        "left": 42, # The left padding of the cell.
+                        "right": 42, # The right padding of the cell.
+                        "bottom": 42, # The bottom padding of the cell.
+                      },
                       "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                         "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                             # the user's locale will be used if necessary for the given type.
@@ -67388,12 +141967,143 @@
                             # When writing, this field must be set.
                       },
                       "textDirection": "A String", # The direction of the text in the cell.
-                      "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                          # When updating padding, every field must be specified.
-                        "top": 42, # The top padding of the cell.
-                        "left": 42, # The left padding of the cell.
-                        "right": 42, # The right padding of the cell.
-                        "bottom": 42, # The bottom padding of the cell.
+                      "backgroundColorStyle": { # A color value. # The background color of the cell.
+                          # If background_color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
                       },
                       "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                       "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -67466,14 +142176,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -67503,11 +142213,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -67603,14 +142313,14 @@
                               #
                               #      static Color* toProto(UIColor* color) {
                               #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                               #            return nil;
                               #          }
                               #          Color* result = [[Color alloc] init];
                               #          [result setRed:red];
                               #          [result setGreen:green];
                               #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
+                              #          if (alpha &lt;= 0.9999) {
                               #            [result setAlpha:floatWrapperWithValue(alpha)];
                               #          }
                               #          [result autorelease];
@@ -67640,11 +142350,11 @@
                               #     };
                               #
                               #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                               #       var hexString = rgbNumber.toString(16);
                               #       var missingZeros = 6 - hexString.length;
                               #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
                               #          resultBuilder.push('0');
                               #       }
                               #       resultBuilder.push(hexString);
@@ -67669,284 +142379,144 @@
                           },
                           "width": 42, # The width of the border, in pixels.
                               # Deprecated; the width is determined by the "style" field.
-                          "style": "A String", # The style of the border.
-                        },
-                        "right": { # A border along a cell. # The right border of the cell.
-                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                              # for simplicity of conversion to/from color representations in various
-                              # languages over compactness; for example, the fields of this representation
-                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                              # method in iOS; and, with just a little work, it can be easily formatted into
-                              # a CSS "rgba()" string in JavaScript, as well.
-                              #
-                              # Note: this proto does not carry information about the absolute color space
-                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                              # space.
-                              #
-                              # Example (Java):
-                              #
-                              #      import com.google.type.Color;
-                              #
-                              #      // ...
-                              #      public static java.awt.Color fromProto(Color protocolor) {
-                              #        float alpha = protocolor.hasAlpha()
-                              #            ? protocolor.getAlpha().getValue()
-                              #            : 1.0;
-                              #
-                              #        return new java.awt.Color(
-                              #            protocolor.getRed(),
-                              #            protocolor.getGreen(),
-                              #            protocolor.getBlue(),
-                              #            alpha);
-                              #      }
-                              #
-                              #      public static Color toProto(java.awt.Color color) {
-                              #        float red = (float) color.getRed();
-                              #        float green = (float) color.getGreen();
-                              #        float blue = (float) color.getBlue();
-                              #        float denominator = 255.0;
-                              #        Color.Builder resultBuilder =
-                              #            Color
-                              #                .newBuilder()
-                              #                .setRed(red / denominator)
-                              #                .setGreen(green / denominator)
-                              #                .setBlue(blue / denominator);
-                              #        int alpha = color.getAlpha();
-                              #        if (alpha != 255) {
-                              #          result.setAlpha(
-                              #              FloatValue
-                              #                  .newBuilder()
-                              #                  .setValue(((float) alpha) / denominator)
-                              #                  .build());
-                              #        }
-                              #        return resultBuilder.build();
-                              #      }
-                              #      // ...
-                              #
-                              # Example (iOS / Obj-C):
-                              #
-                              #      // ...
-                              #      static UIColor* fromProto(Color* protocolor) {
-                              #         float red = [protocolor red];
-                              #         float green = [protocolor green];
-                              #         float blue = [protocolor blue];
-                              #         FloatValue* alpha_wrapper = [protocolor alpha];
-                              #         float alpha = 1.0;
-                              #         if (alpha_wrapper != nil) {
-                              #           alpha = [alpha_wrapper value];
-                              #         }
-                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                              #      }
-                              #
-                              #      static Color* toProto(UIColor* color) {
-                              #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                              #            return nil;
-                              #          }
-                              #          Color* result = [[Color alloc] init];
-                              #          [result setRed:red];
-                              #          [result setGreen:green];
-                              #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
-                              #            [result setAlpha:floatWrapperWithValue(alpha)];
-                              #          }
-                              #          [result autorelease];
-                              #          return result;
-                              #     }
-                              #     // ...
-                              #
-                              #  Example (JavaScript):
-                              #
-                              #     // ...
-                              #
-                              #     var protoToCssColor = function(rgb_color) {
-                              #        var redFrac = rgb_color.red || 0.0;
-                              #        var greenFrac = rgb_color.green || 0.0;
-                              #        var blueFrac = rgb_color.blue || 0.0;
-                              #        var red = Math.floor(redFrac * 255);
-                              #        var green = Math.floor(greenFrac * 255);
-                              #        var blue = Math.floor(blueFrac * 255);
-                              #
-                              #        if (!('alpha' in rgb_color)) {
-                              #           return rgbToCssColor_(red, green, blue);
-                              #        }
-                              #
-                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                              #        var rgbParams = [red, green, blue].join(',');
-                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                              #     };
-                              #
-                              #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                              #       var hexString = rgbNumber.toString(16);
-                              #       var missingZeros = 6 - hexString.length;
-                              #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
-                              #          resultBuilder.push('0');
-                              #       }
-                              #       resultBuilder.push(hexString);
-                              #       return resultBuilder.join('');
-                              #     };
-                              #
-                              #     // ...
-                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                                # the final pixel color is defined by the equation:
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
                                 #
-                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
                                 #
-                                # This means that a value of 1.0 corresponds to a solid color, whereas
-                                # a value of 0.0 corresponds to a completely transparent color. This
-                                # uses a wrapper message rather than a simple float scalar so that it is
-                                # possible to distinguish between a default value and the value being unset.
-                                # If omitted, this color object is to be rendered as a solid color
-                                # (as if the alpha value had been explicitly given with a value of 1.0).
-                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
                           },
-                          "width": 42, # The width of the border, in pixels.
-                              # Deprecated; the width is determined by the "style" field.
-                          "style": "A String", # The style of the border.
-                        },
-                        "bottom": { # A border along a cell. # The bottom border of the cell.
-                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                              # for simplicity of conversion to/from color representations in various
-                              # languages over compactness; for example, the fields of this representation
-                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                              # method in iOS; and, with just a little work, it can be easily formatted into
-                              # a CSS "rgba()" string in JavaScript, as well.
-                              #
-                              # Note: this proto does not carry information about the absolute color space
-                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                              # space.
-                              #
-                              # Example (Java):
-                              #
-                              #      import com.google.type.Color;
-                              #
-                              #      // ...
-                              #      public static java.awt.Color fromProto(Color protocolor) {
-                              #        float alpha = protocolor.hasAlpha()
-                              #            ? protocolor.getAlpha().getValue()
-                              #            : 1.0;
-                              #
-                              #        return new java.awt.Color(
-                              #            protocolor.getRed(),
-                              #            protocolor.getGreen(),
-                              #            protocolor.getBlue(),
-                              #            alpha);
-                              #      }
-                              #
-                              #      public static Color toProto(java.awt.Color color) {
-                              #        float red = (float) color.getRed();
-                              #        float green = (float) color.getGreen();
-                              #        float blue = (float) color.getBlue();
-                              #        float denominator = 255.0;
-                              #        Color.Builder resultBuilder =
-                              #            Color
-                              #                .newBuilder()
-                              #                .setRed(red / denominator)
-                              #                .setGreen(green / denominator)
-                              #                .setBlue(blue / denominator);
-                              #        int alpha = color.getAlpha();
-                              #        if (alpha != 255) {
-                              #          result.setAlpha(
-                              #              FloatValue
-                              #                  .newBuilder()
-                              #                  .setValue(((float) alpha) / denominator)
-                              #                  .build());
-                              #        }
-                              #        return resultBuilder.build();
-                              #      }
-                              #      // ...
-                              #
-                              # Example (iOS / Obj-C):
-                              #
-                              #      // ...
-                              #      static UIColor* fromProto(Color* protocolor) {
-                              #         float red = [protocolor red];
-                              #         float green = [protocolor green];
-                              #         float blue = [protocolor blue];
-                              #         FloatValue* alpha_wrapper = [protocolor alpha];
-                              #         float alpha = 1.0;
-                              #         if (alpha_wrapper != nil) {
-                              #           alpha = [alpha_wrapper value];
-                              #         }
-                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                              #      }
-                              #
-                              #      static Color* toProto(UIColor* color) {
-                              #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                              #            return nil;
-                              #          }
-                              #          Color* result = [[Color alloc] init];
-                              #          [result setRed:red];
-                              #          [result setGreen:green];
-                              #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
-                              #            [result setAlpha:floatWrapperWithValue(alpha)];
-                              #          }
-                              #          [result autorelease];
-                              #          return result;
-                              #     }
-                              #     // ...
-                              #
-                              #  Example (JavaScript):
-                              #
-                              #     // ...
-                              #
-                              #     var protoToCssColor = function(rgb_color) {
-                              #        var redFrac = rgb_color.red || 0.0;
-                              #        var greenFrac = rgb_color.green || 0.0;
-                              #        var blueFrac = rgb_color.blue || 0.0;
-                              #        var red = Math.floor(redFrac * 255);
-                              #        var green = Math.floor(greenFrac * 255);
-                              #        var blue = Math.floor(blueFrac * 255);
-                              #
-                              #        if (!('alpha' in rgb_color)) {
-                              #           return rgbToCssColor_(red, green, blue);
-                              #        }
-                              #
-                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                              #        var rgbParams = [red, green, blue].join(',');
-                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                              #     };
-                              #
-                              #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                              #       var hexString = rgbNumber.toString(16);
-                              #       var missingZeros = 6 - hexString.length;
-                              #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
-                              #          resultBuilder.push('0');
-                              #       }
-                              #       resultBuilder.push(hexString);
-                              #       return resultBuilder.join('');
-                              #     };
-                              #
-                              #     // ...
-                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                                # the final pixel color is defined by the equation:
-                                #
-                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                                #
-                                # This means that a value of 1.0 corresponds to a solid color, whereas
-                                # a value of 0.0 corresponds to a completely transparent color. This
-                                # uses a wrapper message rather than a simple float scalar so that it is
-                                # possible to distinguish between a default value and the value being unset.
-                                # If omitted, this color object is to be rendered as a solid color
-                                # (as if the alpha value had been explicitly given with a value of 1.0).
-                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                          },
-                          "width": 42, # The width of the border, in pixels.
-                              # Deprecated; the width is determined by the "style" field.
                           "style": "A String", # The style of the border.
                         },
                         "left": { # A border along a cell. # The left border of the cell.
@@ -68020,14 +142590,14 @@
                               #
                               #      static Color* toProto(UIColor* color) {
                               #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                               #            return nil;
                               #          }
                               #          Color* result = [[Color alloc] init];
                               #          [result setRed:red];
                               #          [result setGreen:green];
                               #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
+                              #          if (alpha &lt;= 0.9999) {
                               #            [result setAlpha:floatWrapperWithValue(alpha)];
                               #          }
                               #          [result autorelease];
@@ -68057,11 +142627,11 @@
                               #     };
                               #
                               #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                               #       var hexString = rgbNumber.toString(16);
                               #       var missingZeros = 6 - hexString.length;
                               #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
                               #          resultBuilder.push('0');
                               #       }
                               #       resultBuilder.push(hexString);
@@ -68086,6 +142656,698 @@
                           },
                           "width": 42, # The width of the border, in pixels.
                               # Deprecated; the width is determined by the "style" field.
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                          },
+                          "style": "A String", # The style of the border.
+                        },
+                        "right": { # A border along a cell. # The right border of the cell.
+                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                          "width": 42, # The width of the border, in pixels.
+                              # Deprecated; the width is determined by the "style" field.
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                          },
+                          "style": "A String", # The style of the border.
+                        },
+                        "bottom": { # A border along a cell. # The bottom border of the cell.
+                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                          "width": 42, # The width of the border, in pixels.
+                              # Deprecated; the width is determined by the "style" field.
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                          },
                           "style": "A String", # The style of the border.
                         },
                       },
@@ -68183,14 +143445,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -68220,11 +143482,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -68248,6 +143510,144 @@
                           "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                         },
                         "bold": True or False, # True if the text is bold.
+                        "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                            # If foreground_color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
                         "strikethrough": True or False, # True if the text has a strikethrough.
                         "fontFamily": "A String", # The font family.
                         "fontSize": 42, # The size of the font.
@@ -68374,14 +143774,14 @@
                               #
                               #      static Color* toProto(UIColor* color) {
                               #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                               #            return nil;
                               #          }
                               #          Color* result = [[Color alloc] init];
                               #          [result setRed:red];
                               #          [result setGreen:green];
                               #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
+                              #          if (alpha &lt;= 0.9999) {
                               #            [result setAlpha:floatWrapperWithValue(alpha)];
                               #          }
                               #          [result autorelease];
@@ -68411,11 +143811,11 @@
                               #     };
                               #
                               #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                               #       var hexString = rgbNumber.toString(16);
                               #       var missingZeros = 6 - hexString.length;
                               #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
                               #          resultBuilder.push('0');
                               #       }
                               #       resultBuilder.push(hexString);
@@ -68439,6 +143839,144 @@
                             "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                           },
                           "bold": True or False, # True if the text is bold.
+                          "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                              # If foreground_color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                          },
                           "strikethrough": True or False, # True if the text has a strikethrough.
                           "fontFamily": "A String", # The font family.
                           "fontSize": 42, # The size of the font.
@@ -68458,6 +143996,16 @@
           { # A group over an interval of rows or columns on a sheet, which can contain or
               # be contained within other groups. A group can be collapsed or expanded as a
               # unit on the sheet.
+            "depth": 42, # The depth of the group, representing how many groups have a range that
+                # wholly contains the range of this group.
+            "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
+                # collapsed if an overlapping group at a shallower depth is expanded.
+                #
+                # A true value does not imply that all dimensions within the group are
+                # hidden, since a dimension's visibility can change independently from this
+                # group property. However, when this property is updated, all dimensions
+                # within it are set to hidden if this field is true, or set to visible if
+                # this field is false.
             "range": { # A range along a single dimension on a sheet. # The range over which this group exists.
                 # All indexes are zero-based.
                 # Indexes are half open: the start index is inclusive
@@ -68468,16 +144016,6 @@
               "sheetId": 42, # The sheet this span is on.
               "dimension": "A String", # The dimension of the span.
             },
-            "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
-                # collapsed if an overlapping group at a shallower depth is expanded.
-                #
-                # A true value does not imply that all dimensions within the group are
-                # hidden, since a dimension's visibility can change independently from this
-                # group property. However, when this property is updated, all dimensions
-                # within it are set to hidden if this field is true, or set to visible if
-                # this field is false.
-            "depth": 42, # The depth of the group, representing how many groups have a range that
-                # wholly contains the range of this group.
           },
         ],
       },
@@ -68538,9 +144076,164 @@
           # * a combination of the ISO language code and country code, such as `en_US`
           #
           # Note: when updating this field, not all locales/languages are supported.
+      "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
+      "spreadsheetTheme": { # Represents spreadsheet theme # Theme applied to the spreadsheet.
+        "themeColors": [ # The spreadsheet theme color pairs. To update you must provide all theme
+            # color pairs.
+          { # A pair mapping a spreadsheet theme color type to the concrete color it
+              # represents.
+            "color": { # A color value. # The concrete color corresponding to the theme color type.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
+            "colorType": "A String", # The type of the spreadsheet theme color.
+          },
+        ],
+        "primaryFontFamily": "A String", # / Name of the primary font family.
+      },
       "defaultFormat": { # The format of a cell. # The default format of all cells in the spreadsheet.
           # CellData.effectiveFormat will not be set if
           # the cell's format is equal to this default format. This field is read-only.
+        "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+            # When updating padding, every field must be specified.
+          "top": 42, # The top padding of the cell.
+          "left": 42, # The left padding of the cell.
+          "right": 42, # The right padding of the cell.
+          "bottom": 42, # The bottom padding of the cell.
+        },
         "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
           "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
               # the user's locale will be used if necessary for the given type.
@@ -68550,12 +144243,143 @@
               # When writing, this field must be set.
         },
         "textDirection": "A String", # The direction of the text in the cell.
-        "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-            # When updating padding, every field must be specified.
-          "top": 42, # The top padding of the cell.
-          "left": 42, # The left padding of the cell.
-          "right": 42, # The right padding of the cell.
-          "bottom": 42, # The bottom padding of the cell.
+        "backgroundColorStyle": { # A color value. # The background color of the cell.
+            # If background_color is also set, this field takes precedence.
+          "themeColor": "A String", # Theme color.
+          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+              # for simplicity of conversion to/from color representations in various
+              # languages over compactness; for example, the fields of this representation
+              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+              # method in iOS; and, with just a little work, it can be easily formatted into
+              # a CSS "rgba()" string in JavaScript, as well.
+              #
+              # Note: this proto does not carry information about the absolute color space
+              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+              # space.
+              #
+              # Example (Java):
+              #
+              #      import com.google.type.Color;
+              #
+              #      // ...
+              #      public static java.awt.Color fromProto(Color protocolor) {
+              #        float alpha = protocolor.hasAlpha()
+              #            ? protocolor.getAlpha().getValue()
+              #            : 1.0;
+              #
+              #        return new java.awt.Color(
+              #            protocolor.getRed(),
+              #            protocolor.getGreen(),
+              #            protocolor.getBlue(),
+              #            alpha);
+              #      }
+              #
+              #      public static Color toProto(java.awt.Color color) {
+              #        float red = (float) color.getRed();
+              #        float green = (float) color.getGreen();
+              #        float blue = (float) color.getBlue();
+              #        float denominator = 255.0;
+              #        Color.Builder resultBuilder =
+              #            Color
+              #                .newBuilder()
+              #                .setRed(red / denominator)
+              #                .setGreen(green / denominator)
+              #                .setBlue(blue / denominator);
+              #        int alpha = color.getAlpha();
+              #        if (alpha != 255) {
+              #          result.setAlpha(
+              #              FloatValue
+              #                  .newBuilder()
+              #                  .setValue(((float) alpha) / denominator)
+              #                  .build());
+              #        }
+              #        return resultBuilder.build();
+              #      }
+              #      // ...
+              #
+              # Example (iOS / Obj-C):
+              #
+              #      // ...
+              #      static UIColor* fromProto(Color* protocolor) {
+              #         float red = [protocolor red];
+              #         float green = [protocolor green];
+              #         float blue = [protocolor blue];
+              #         FloatValue* alpha_wrapper = [protocolor alpha];
+              #         float alpha = 1.0;
+              #         if (alpha_wrapper != nil) {
+              #           alpha = [alpha_wrapper value];
+              #         }
+              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+              #      }
+              #
+              #      static Color* toProto(UIColor* color) {
+              #          CGFloat red, green, blue, alpha;
+              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+              #            return nil;
+              #          }
+              #          Color* result = [[Color alloc] init];
+              #          [result setRed:red];
+              #          [result setGreen:green];
+              #          [result setBlue:blue];
+              #          if (alpha &lt;= 0.9999) {
+              #            [result setAlpha:floatWrapperWithValue(alpha)];
+              #          }
+              #          [result autorelease];
+              #          return result;
+              #     }
+              #     // ...
+              #
+              #  Example (JavaScript):
+              #
+              #     // ...
+              #
+              #     var protoToCssColor = function(rgb_color) {
+              #        var redFrac = rgb_color.red || 0.0;
+              #        var greenFrac = rgb_color.green || 0.0;
+              #        var blueFrac = rgb_color.blue || 0.0;
+              #        var red = Math.floor(redFrac * 255);
+              #        var green = Math.floor(greenFrac * 255);
+              #        var blue = Math.floor(blueFrac * 255);
+              #
+              #        if (!('alpha' in rgb_color)) {
+              #           return rgbToCssColor_(red, green, blue);
+              #        }
+              #
+              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+              #        var rgbParams = [red, green, blue].join(',');
+              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+              #     };
+              #
+              #     var rgbToCssColor_ = function(red, green, blue) {
+              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+              #       var hexString = rgbNumber.toString(16);
+              #       var missingZeros = 6 - hexString.length;
+              #       var resultBuilder = ['#'];
+              #       for (var i = 0; i &lt; missingZeros; i++) {
+              #          resultBuilder.push('0');
+              #       }
+              #       resultBuilder.push(hexString);
+              #       return resultBuilder.join('');
+              #     };
+              #
+              #     // ...
+            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                # the final pixel color is defined by the equation:
+                #
+                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                #
+                # This means that a value of 1.0 corresponds to a solid color, whereas
+                # a value of 0.0 corresponds to a completely transparent color. This
+                # uses a wrapper message rather than a simple float scalar so that it is
+                # possible to distinguish between a default value and the value being unset.
+                # If omitted, this color object is to be rendered as a solid color
+                # (as if the alpha value had been explicitly given with a value of 1.0).
+            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+          },
         },
         "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
         "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -68628,14 +144452,14 @@
             #
             #      static Color* toProto(UIColor* color) {
             #          CGFloat red, green, blue, alpha;
-            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
             #            return nil;
             #          }
             #          Color* result = [[Color alloc] init];
             #          [result setRed:red];
             #          [result setGreen:green];
             #          [result setBlue:blue];
-            #          if (alpha <= 0.9999) {
+            #          if (alpha &lt;= 0.9999) {
             #            [result setAlpha:floatWrapperWithValue(alpha)];
             #          }
             #          [result autorelease];
@@ -68665,11 +144489,11 @@
             #     };
             #
             #     var rgbToCssColor_ = function(red, green, blue) {
-            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
             #       var hexString = rgbNumber.toString(16);
             #       var missingZeros = 6 - hexString.length;
             #       var resultBuilder = ['#'];
-            #       for (var i = 0; i < missingZeros; i++) {
+            #       for (var i = 0; i &lt; missingZeros; i++) {
             #          resultBuilder.push('0');
             #       }
             #       resultBuilder.push(hexString);
@@ -68765,14 +144589,14 @@
                 #
                 #      static Color* toProto(UIColor* color) {
                 #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                 #            return nil;
                 #          }
                 #          Color* result = [[Color alloc] init];
                 #          [result setRed:red];
                 #          [result setGreen:green];
                 #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
+                #          if (alpha &lt;= 0.9999) {
                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                 #          }
                 #          [result autorelease];
@@ -68802,11 +144626,11 @@
                 #     };
                 #
                 #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                 #       var hexString = rgbNumber.toString(16);
                 #       var missingZeros = 6 - hexString.length;
                 #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
+                #       for (var i = 0; i &lt; missingZeros; i++) {
                 #          resultBuilder.push('0');
                 #       }
                 #       resultBuilder.push(hexString);
@@ -68831,284 +144655,144 @@
             },
             "width": 42, # The width of the border, in pixels.
                 # Deprecated; the width is determined by the "style" field.
-            "style": "A String", # The style of the border.
-          },
-          "right": { # A border along a cell. # The right border of the cell.
-            "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                # for simplicity of conversion to/from color representations in various
-                # languages over compactness; for example, the fields of this representation
-                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                # method in iOS; and, with just a little work, it can be easily formatted into
-                # a CSS "rgba()" string in JavaScript, as well.
-                #
-                # Note: this proto does not carry information about the absolute color space
-                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                # space.
-                #
-                # Example (Java):
-                #
-                #      import com.google.type.Color;
-                #
-                #      // ...
-                #      public static java.awt.Color fromProto(Color protocolor) {
-                #        float alpha = protocolor.hasAlpha()
-                #            ? protocolor.getAlpha().getValue()
-                #            : 1.0;
-                #
-                #        return new java.awt.Color(
-                #            protocolor.getRed(),
-                #            protocolor.getGreen(),
-                #            protocolor.getBlue(),
-                #            alpha);
-                #      }
-                #
-                #      public static Color toProto(java.awt.Color color) {
-                #        float red = (float) color.getRed();
-                #        float green = (float) color.getGreen();
-                #        float blue = (float) color.getBlue();
-                #        float denominator = 255.0;
-                #        Color.Builder resultBuilder =
-                #            Color
-                #                .newBuilder()
-                #                .setRed(red / denominator)
-                #                .setGreen(green / denominator)
-                #                .setBlue(blue / denominator);
-                #        int alpha = color.getAlpha();
-                #        if (alpha != 255) {
-                #          result.setAlpha(
-                #              FloatValue
-                #                  .newBuilder()
-                #                  .setValue(((float) alpha) / denominator)
-                #                  .build());
-                #        }
-                #        return resultBuilder.build();
-                #      }
-                #      // ...
-                #
-                # Example (iOS / Obj-C):
-                #
-                #      // ...
-                #      static UIColor* fromProto(Color* protocolor) {
-                #         float red = [protocolor red];
-                #         float green = [protocolor green];
-                #         float blue = [protocolor blue];
-                #         FloatValue* alpha_wrapper = [protocolor alpha];
-                #         float alpha = 1.0;
-                #         if (alpha_wrapper != nil) {
-                #           alpha = [alpha_wrapper value];
-                #         }
-                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                #      }
-                #
-                #      static Color* toProto(UIColor* color) {
-                #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                #            return nil;
-                #          }
-                #          Color* result = [[Color alloc] init];
-                #          [result setRed:red];
-                #          [result setGreen:green];
-                #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
-                #            [result setAlpha:floatWrapperWithValue(alpha)];
-                #          }
-                #          [result autorelease];
-                #          return result;
-                #     }
-                #     // ...
-                #
-                #  Example (JavaScript):
-                #
-                #     // ...
-                #
-                #     var protoToCssColor = function(rgb_color) {
-                #        var redFrac = rgb_color.red || 0.0;
-                #        var greenFrac = rgb_color.green || 0.0;
-                #        var blueFrac = rgb_color.blue || 0.0;
-                #        var red = Math.floor(redFrac * 255);
-                #        var green = Math.floor(greenFrac * 255);
-                #        var blue = Math.floor(blueFrac * 255);
-                #
-                #        if (!('alpha' in rgb_color)) {
-                #           return rgbToCssColor_(red, green, blue);
-                #        }
-                #
-                #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                #        var rgbParams = [red, green, blue].join(',');
-                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                #     };
-                #
-                #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                #       var hexString = rgbNumber.toString(16);
-                #       var missingZeros = 6 - hexString.length;
-                #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
-                #          resultBuilder.push('0');
-                #       }
-                #       resultBuilder.push(hexString);
-                #       return resultBuilder.join('');
-                #     };
-                #
-                #     // ...
-              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                  # the final pixel color is defined by the equation:
+            "colorStyle": { # A color value. # The color of the border.
+                # If color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
                   #
-                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
                   #
-                  # This means that a value of 1.0 corresponds to a solid color, whereas
-                  # a value of 0.0 corresponds to a completely transparent color. This
-                  # uses a wrapper message rather than a simple float scalar so that it is
-                  # possible to distinguish between a default value and the value being unset.
-                  # If omitted, this color object is to be rendered as a solid color
-                  # (as if the alpha value had been explicitly given with a value of 1.0).
-              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
             },
-            "width": 42, # The width of the border, in pixels.
-                # Deprecated; the width is determined by the "style" field.
-            "style": "A String", # The style of the border.
-          },
-          "bottom": { # A border along a cell. # The bottom border of the cell.
-            "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                # for simplicity of conversion to/from color representations in various
-                # languages over compactness; for example, the fields of this representation
-                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                # method in iOS; and, with just a little work, it can be easily formatted into
-                # a CSS "rgba()" string in JavaScript, as well.
-                #
-                # Note: this proto does not carry information about the absolute color space
-                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                # space.
-                #
-                # Example (Java):
-                #
-                #      import com.google.type.Color;
-                #
-                #      // ...
-                #      public static java.awt.Color fromProto(Color protocolor) {
-                #        float alpha = protocolor.hasAlpha()
-                #            ? protocolor.getAlpha().getValue()
-                #            : 1.0;
-                #
-                #        return new java.awt.Color(
-                #            protocolor.getRed(),
-                #            protocolor.getGreen(),
-                #            protocolor.getBlue(),
-                #            alpha);
-                #      }
-                #
-                #      public static Color toProto(java.awt.Color color) {
-                #        float red = (float) color.getRed();
-                #        float green = (float) color.getGreen();
-                #        float blue = (float) color.getBlue();
-                #        float denominator = 255.0;
-                #        Color.Builder resultBuilder =
-                #            Color
-                #                .newBuilder()
-                #                .setRed(red / denominator)
-                #                .setGreen(green / denominator)
-                #                .setBlue(blue / denominator);
-                #        int alpha = color.getAlpha();
-                #        if (alpha != 255) {
-                #          result.setAlpha(
-                #              FloatValue
-                #                  .newBuilder()
-                #                  .setValue(((float) alpha) / denominator)
-                #                  .build());
-                #        }
-                #        return resultBuilder.build();
-                #      }
-                #      // ...
-                #
-                # Example (iOS / Obj-C):
-                #
-                #      // ...
-                #      static UIColor* fromProto(Color* protocolor) {
-                #         float red = [protocolor red];
-                #         float green = [protocolor green];
-                #         float blue = [protocolor blue];
-                #         FloatValue* alpha_wrapper = [protocolor alpha];
-                #         float alpha = 1.0;
-                #         if (alpha_wrapper != nil) {
-                #           alpha = [alpha_wrapper value];
-                #         }
-                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                #      }
-                #
-                #      static Color* toProto(UIColor* color) {
-                #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                #            return nil;
-                #          }
-                #          Color* result = [[Color alloc] init];
-                #          [result setRed:red];
-                #          [result setGreen:green];
-                #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
-                #            [result setAlpha:floatWrapperWithValue(alpha)];
-                #          }
-                #          [result autorelease];
-                #          return result;
-                #     }
-                #     // ...
-                #
-                #  Example (JavaScript):
-                #
-                #     // ...
-                #
-                #     var protoToCssColor = function(rgb_color) {
-                #        var redFrac = rgb_color.red || 0.0;
-                #        var greenFrac = rgb_color.green || 0.0;
-                #        var blueFrac = rgb_color.blue || 0.0;
-                #        var red = Math.floor(redFrac * 255);
-                #        var green = Math.floor(greenFrac * 255);
-                #        var blue = Math.floor(blueFrac * 255);
-                #
-                #        if (!('alpha' in rgb_color)) {
-                #           return rgbToCssColor_(red, green, blue);
-                #        }
-                #
-                #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                #        var rgbParams = [red, green, blue].join(',');
-                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                #     };
-                #
-                #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                #       var hexString = rgbNumber.toString(16);
-                #       var missingZeros = 6 - hexString.length;
-                #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
-                #          resultBuilder.push('0');
-                #       }
-                #       resultBuilder.push(hexString);
-                #       return resultBuilder.join('');
-                #     };
-                #
-                #     // ...
-              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                  # the final pixel color is defined by the equation:
-                  #
-                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                  #
-                  # This means that a value of 1.0 corresponds to a solid color, whereas
-                  # a value of 0.0 corresponds to a completely transparent color. This
-                  # uses a wrapper message rather than a simple float scalar so that it is
-                  # possible to distinguish between a default value and the value being unset.
-                  # If omitted, this color object is to be rendered as a solid color
-                  # (as if the alpha value had been explicitly given with a value of 1.0).
-              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-            },
-            "width": 42, # The width of the border, in pixels.
-                # Deprecated; the width is determined by the "style" field.
             "style": "A String", # The style of the border.
           },
           "left": { # A border along a cell. # The left border of the cell.
@@ -69182,14 +144866,14 @@
                 #
                 #      static Color* toProto(UIColor* color) {
                 #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                 #            return nil;
                 #          }
                 #          Color* result = [[Color alloc] init];
                 #          [result setRed:red];
                 #          [result setGreen:green];
                 #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
+                #          if (alpha &lt;= 0.9999) {
                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                 #          }
                 #          [result autorelease];
@@ -69219,11 +144903,11 @@
                 #     };
                 #
                 #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                 #       var hexString = rgbNumber.toString(16);
                 #       var missingZeros = 6 - hexString.length;
                 #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
+                #       for (var i = 0; i &lt; missingZeros; i++) {
                 #          resultBuilder.push('0');
                 #       }
                 #       resultBuilder.push(hexString);
@@ -69248,6 +144932,698 @@
             },
             "width": 42, # The width of the border, in pixels.
                 # Deprecated; the width is determined by the "style" field.
+            "colorStyle": { # A color value. # The color of the border.
+                # If color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
+            "style": "A String", # The style of the border.
+          },
+          "right": { # A border along a cell. # The right border of the cell.
+            "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
+            "width": 42, # The width of the border, in pixels.
+                # Deprecated; the width is determined by the "style" field.
+            "colorStyle": { # A color value. # The color of the border.
+                # If color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
+            "style": "A String", # The style of the border.
+          },
+          "bottom": { # A border along a cell. # The bottom border of the cell.
+            "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
+            "width": 42, # The width of the border, in pixels.
+                # Deprecated; the width is determined by the "style" field.
+            "colorStyle": { # A color value. # The color of the border.
+                # If color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
             "style": "A String", # The style of the border.
           },
         },
@@ -69345,14 +145721,14 @@
               #
               #      static Color* toProto(UIColor* color) {
               #          CGFloat red, green, blue, alpha;
-              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
               #            return nil;
               #          }
               #          Color* result = [[Color alloc] init];
               #          [result setRed:red];
               #          [result setGreen:green];
               #          [result setBlue:blue];
-              #          if (alpha <= 0.9999) {
+              #          if (alpha &lt;= 0.9999) {
               #            [result setAlpha:floatWrapperWithValue(alpha)];
               #          }
               #          [result autorelease];
@@ -69382,11 +145758,11 @@
               #     };
               #
               #     var rgbToCssColor_ = function(red, green, blue) {
-              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
               #       var hexString = rgbNumber.toString(16);
               #       var missingZeros = 6 - hexString.length;
               #       var resultBuilder = ['#'];
-              #       for (var i = 0; i < missingZeros; i++) {
+              #       for (var i = 0; i &lt; missingZeros; i++) {
               #          resultBuilder.push('0');
               #       }
               #       resultBuilder.push(hexString);
@@ -69410,6 +145786,144 @@
             "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
           },
           "bold": True or False, # True if the text is bold.
+          "foregroundColorStyle": { # A color value. # The foreground color of the text.
+              # If foreground_color is also set, this field takes precedence.
+            "themeColor": "A String", # Theme color.
+            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
+          },
           "strikethrough": True or False, # True if the text has a strikethrough.
           "fontFamily": "A String", # The font family.
           "fontSize": 42, # The size of the font.
@@ -69418,10 +145932,9 @@
         },
         "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
       },
-      "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
       "iterativeCalculationSettings": { # Settings to control how circular dependencies are resolved with iterative # Determines whether and how circular references are resolved with iterative
-          # calculation.  Absence of this field means that circular references will
-          # result in calculation errors.
+          # calculation.  Absence of this field means that circular references result
+          # in calculation errors.
           # calculation.
         "convergenceThreshold": 3.14, # When iterative calculation is enabled and successive results differ by
             # less than this threshold value, the calculation rounds stop.
@@ -69500,8 +146013,8 @@
             "sheetId": 42, # The sheet this span is on.
             "dimension": "A String", # The dimension of the span.
           },
-          "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
           "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+          "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
         },
         "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
             # specified.
@@ -69511,1387 +146024,30 @@
     ],
     "sheets": [ # The sheets that are part of a spreadsheet.
       { # A sheet in a spreadsheet.
-        "conditionalFormats": [ # The conditional format rules in this sheet.
-          { # A rule describing a conditional format.
-            "ranges": [ # The ranges that are formatted if the condition is true.
-                # All the ranges must be on the same grid.
-              { # A range on a sheet.
-                  # All indexes are zero-based.
-                  # Indexes are half open, e.g the start index is inclusive
-                  # and the end index is exclusive -- [start_index, end_index).
-                  # Missing indexes indicate the range is unbounded on that side.
-                  #
-                  # For example, if `"Sheet1"` is sheet ID 0, then:
-                  #
-                  #   `Sheet1!A1:A1 == sheet_id: 0,
-                  #                   start_row_index: 0, end_row_index: 1,
-                  #                   start_column_index: 0, end_column_index: 1`
-                  #
-                  #   `Sheet1!A3:B4 == sheet_id: 0,
-                  #                   start_row_index: 2, end_row_index: 4,
-                  #                   start_column_index: 0, end_column_index: 2`
-                  #
-                  #   `Sheet1!A:B == sheet_id: 0,
-                  #                 start_column_index: 0, end_column_index: 2`
-                  #
-                  #   `Sheet1!A5:B == sheet_id: 0,
-                  #                  start_row_index: 4,
-                  #                  start_column_index: 0, end_column_index: 2`
-                  #
-                  #   `Sheet1 == sheet_id:0`
-                  #
-                  # The start index must always be less than or equal to the end index.
-                  # If the start index equals the end index, then the range is empty.
-                  # Empty ranges are typically not meaningful and are usually rendered in the
-                  # UI as `#REF!`.
-                "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-                "sheetId": 42, # The sheet this range is on.
-                "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-              },
-            ],
-            "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
-              "condition": { # A condition that can evaluate to true or false. # The condition of the rule. If the condition evaluates to true,
-                  # the format is applied.
-                  # BooleanConditions are used by conditional formatting,
-                  # data validation, and the criteria in filters.
-                "values": [ # The values of the condition. The number of supported values depends
-                    # on the condition type.  Some support zero values,
-                    # others one or two values,
-                    # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
-                  { # The value of the condition.
-                    "relativeDate": "A String", # A relative date (based on the current date).
-                        # Valid only if the type is
-                        # DATE_BEFORE,
-                        # DATE_AFTER,
-                        # DATE_ON_OR_BEFORE or
-                        # DATE_ON_OR_AFTER.
-                        #
-                        # Relative dates are not supported in data validation.
-                        # They are supported only in conditional formatting and
-                        # conditional filters.
-                    "userEnteredValue": "A String", # A value the condition is based on.
-                        # The value is parsed as if the user typed into a cell.
-                        # Formulas are supported (and must begin with an `=` or a '+').
-                  },
-                ],
-                "type": "A String", # The type of condition.
-              },
-              "format": { # The format of a cell. # The format to apply.
-                  # Conditional formatting can only apply a subset of formatting:
-                  # bold, italic,
-                  # strikethrough,
-                  # foreground color &
-                  # background color.
-                "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
-                  "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
-                      # the user's locale will be used if necessary for the given type.
-                      # See the [Date and Number Formats guide](/sheets/api/guides/formats) for
-                      # more information about the supported patterns.
-                  "type": "A String", # The type of the number format.
-                      # When writing, this field must be set.
-                },
-                "textDirection": "A String", # The direction of the text in the cell.
-                "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                    # When updating padding, every field must be specified.
-                  "top": 42, # The top padding of the cell.
-                  "left": 42, # The left padding of the cell.
-                  "right": 42, # The right padding of the cell.
-                  "bottom": 42, # The bottom padding of the cell.
-                },
-                "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
-                "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                },
-                "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
-                "borders": { # The borders of the cell. # The borders of the cell.
-                  "top": { # A border along a cell. # The top border of the cell.
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                    },
-                    "width": 42, # The width of the border, in pixels.
-                        # Deprecated; the width is determined by the "style" field.
-                    "style": "A String", # The style of the border.
-                  },
-                  "right": { # A border along a cell. # The right border of the cell.
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                    },
-                    "width": 42, # The width of the border, in pixels.
-                        # Deprecated; the width is determined by the "style" field.
-                    "style": "A String", # The style of the border.
-                  },
-                  "bottom": { # A border along a cell. # The bottom border of the cell.
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                    },
-                    "width": 42, # The width of the border, in pixels.
-                        # Deprecated; the width is determined by the "style" field.
-                    "style": "A String", # The style of the border.
-                  },
-                  "left": { # A border along a cell. # The left border of the cell.
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                    },
-                    "width": 42, # The width of the border, in pixels.
-                        # Deprecated; the width is determined by the "style" field.
-                    "style": "A String", # The style of the border.
-                  },
-                },
-                "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
-                  "angle": 42, # The angle between the standard orientation and the desired orientation.
-                      # Measured in degrees. Valid values are between -90 and 90. Positive
-                      # angles are angled upwards, negative are angled downwards.
-                      #
-                      # Note: For LTR text direction positive angles are in the
-                      # counterclockwise direction, whereas for RTL they are in the clockwise
-                      # direction
-                  "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
-                      # characters is unchanged.
-                      # For example:
-                      #
-                      #     | V |
-                      #     | e |
-                      #     | r |
-                      #     | t |
-                      #     | i |
-                      #     | c |
-                      #     | a |
-                      #     | l |
-                },
-                "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
-                "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
-                    # Absent values indicate that the field isn't specified.
-                  "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
-                        #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                        #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                  },
-                  "bold": True or False, # True if the text is bold.
-                  "strikethrough": True or False, # True if the text has a strikethrough.
-                  "fontFamily": "A String", # The font family.
-                  "fontSize": 42, # The size of the font.
-                  "italic": True or False, # True if the text is italicized.
-                  "underline": True or False, # True if the text is underlined.
-                },
-                "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
-              },
-            },
-            "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule.
-                # the interpolation points listed. The format of a cell will vary
-                # based on its contents as compared to the values of the interpolation
-                # points.
-              "maxpoint": { # A single interpolation point on a gradient conditional format. # The final interpolation point.
-                  # These pin the gradient color scale according to the color,
-                  # type and value chosen.
-                "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                },
-                "type": "A String", # How the value should be interpreted.
-                "value": "A String", # The value this interpolation point uses.  May be a formula.
-                    # Unused if type is MIN or
-                    # MAX.
-              },
-              "midpoint": { # A single interpolation point on a gradient conditional format. # An optional midway interpolation point.
-                  # These pin the gradient color scale according to the color,
-                  # type and value chosen.
-                "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                },
-                "type": "A String", # How the value should be interpreted.
-                "value": "A String", # The value this interpolation point uses.  May be a formula.
-                    # Unused if type is MIN or
-                    # MAX.
-              },
-              "minpoint": { # A single interpolation point on a gradient conditional format. # The starting interpolation point.
-                  # These pin the gradient color scale according to the color,
-                  # type and value chosen.
-                "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                },
-                "type": "A String", # How the value should be interpreted.
-                "value": "A String", # The value this interpolation point uses.  May be a formula.
-                    # Unused if type is MIN or
-                    # MAX.
-              },
+        "columnGroups": [ # All column groups on this sheet, ordered by increasing range start index,
+            # then by group depth.
+          { # A group over an interval of rows or columns on a sheet, which can contain or
+              # be contained within other groups. A group can be collapsed or expanded as a
+              # unit on the sheet.
+            "depth": 42, # The depth of the group, representing how many groups have a range that
+                # wholly contains the range of this group.
+            "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
+                # collapsed if an overlapping group at a shallower depth is expanded.
+                #
+                # A true value does not imply that all dimensions within the group are
+                # hidden, since a dimension's visibility can change independently from this
+                # group property. However, when this property is updated, all dimensions
+                # within it are set to hidden if this field is true, or set to visible if
+                # this field is false.
+            "range": { # A range along a single dimension on a sheet. # The range over which this group exists.
+                # All indexes are zero-based.
+                # Indexes are half open: the start index is inclusive
+                # and the end index is exclusive.
+                # Missing indexes indicate the range is unbounded on that side.
+              "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
+              "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
+              "sheetId": 42, # The sheet this span is on.
+              "dimension": "A String", # The dimension of the span.
             },
           },
         ],
@@ -71017,14 +146173,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -71054,11 +146210,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -71081,12 +146237,12 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first
-                  # row or column will be filled with this color and the colors will
-                  # alternate between first_band_color and second_band_color starting
-                  # from the second row or column. Otherwise, the first row or column will be
-                  # filled with first_band_color and the colors will proceed to alternate
-                  # as they normally would.
+              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would.
                   # for simplicity of conversion to/from color representations in various
                   # languages over compactness; for example, the fields of this representation
                   # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -71156,14 +146312,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -71193,11 +146349,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -71220,142 +146376,426 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
-                  # row or column will be filled with either first_band_color or
+              "footerColorStyle": { # A color value. # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
                   # second_band_color, depending on the color of the previous row or
                   # column.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
+                  # If footer_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
                     #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
                     #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "headerColorStyle": { # A color value. # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would. If header_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "secondBandColorStyle": { # A color value. # The second color that is alternating. (Required)
+                  # If second_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
               },
               "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required)
                   # for simplicity of conversion to/from color representations in various
@@ -71427,14 +146867,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -71464,11 +146904,286 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "firstBandColorStyle": { # A color value. # The first color that is alternating. (Required)
+                  # If first_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
+                  # second_band_color, depending on the color of the previous row or
+                  # column.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -71577,14 +147292,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -71614,11 +147329,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -71641,12 +147356,12 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first
-                  # row or column will be filled with this color and the colors will
-                  # alternate between first_band_color and second_band_color starting
-                  # from the second row or column. Otherwise, the first row or column will be
-                  # filled with first_band_color and the colors will proceed to alternate
-                  # as they normally would.
+              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would.
                   # for simplicity of conversion to/from color representations in various
                   # languages over compactness; for example, the fields of this representation
                   # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -71716,14 +147431,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -71753,11 +147468,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -71780,142 +147495,426 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
-                  # row or column will be filled with either first_band_color or
+              "footerColorStyle": { # A color value. # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
                   # second_band_color, depending on the color of the previous row or
                   # column.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
+                  # If footer_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
                     #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
                     #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "headerColorStyle": { # A color value. # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would. If header_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "secondBandColorStyle": { # A color value. # The second color that is alternating. (Required)
+                  # If second_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
               },
               "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required)
                   # for simplicity of conversion to/from color representations in various
@@ -71987,14 +147986,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -72024,11 +148023,286 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "firstBandColorStyle": { # A color value. # The first color that is alternating. (Required)
+                  # If first_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
+                  # second_band_color, depending on the color of the previous row or
+                  # column.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -72131,400 +148405,282 @@
           "sortSpecs": [ # The sort order per column. Later specifications are used when values
               # are equal in the earlier specifications.
             { # A sort order associated with a specific column or row.
-              "sortOrder": "A String", # The order data should be sorted.
-              "dimensionIndex": 42, # The dimension the sort should be applied to.
-            },
-          ],
-          "criteria": { # The criteria for showing/hiding values per column.
-              # The map's key is the column index, and the value is the criteria for
-              # that column.
-            "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
-              "hiddenValues": [ # Values that should be hidden.
-                "A String",
-              ],
-              "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
-                  # (This does not override hiddenValues -- if a value is listed there,
-                  #  it will still be hidden.)
-                  # BooleanConditions are used by conditional formatting,
-                  # data validation, and the criteria in filters.
-                "values": [ # The values of the condition. The number of supported values depends
-                    # on the condition type.  Some support zero values,
-                    # others one or two values,
-                    # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
-                  { # The value of the condition.
-                    "relativeDate": "A String", # A relative date (based on the current date).
-                        # Valid only if the type is
-                        # DATE_BEFORE,
-                        # DATE_AFTER,
-                        # DATE_ON_OR_BEFORE or
-                        # DATE_ON_OR_AFTER.
-                        #
-                        # Relative dates are not supported in data validation.
-                        # They are supported only in conditional formatting and
-                        # conditional filters.
-                    "userEnteredValue": "A String", # A value the condition is based on.
-                        # The value is parsed as if the user typed into a cell.
-                        # Formulas are supported (and must begin with an `=` or a '+').
-                  },
-                ],
-                "type": "A String", # The type of condition.
+              "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to sort by; cells with this foreground color are
+                  # sorted to the top. Mutually exclusive with background_color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-            },
-          },
-        },
-        "developerMetadata": [ # The developer metadata associated with a sheet.
-          { # Developer metadata associated with a location or object in a spreadsheet.
-              # Developer metadata may be used to associate arbitrary data with various
-              # parts of a spreadsheet and will remain associated at those locations as they
-              # move around and the spreadsheet is edited.  For example, if developer
-              # metadata is associated with row 5 and another row is then subsequently
-              # inserted above row 5, that original metadata will still be associated with
-              # the row it was first associated with (what is now row 6). If the associated
-              # object is deleted its metadata is deleted too.
-            "metadataId": 42, # The spreadsheet-scoped unique ID that identifies the metadata. IDs may be
-                # specified when metadata is created, otherwise one will be randomly
-                # generated and assigned. Must be positive.
-            "metadataValue": "A String", # Data associated with the metadata's key.
-            "location": { # A location where metadata may be associated in a spreadsheet. # The location where the metadata is associated.
-              "locationType": "A String", # The type of location this object represents.  This field is read-only.
-              "dimensionRange": { # A range along a single dimension on a sheet. # Represents the row or column when metadata is associated with
-                  # a dimension. The specified DimensionRange must represent a single row
-                  # or column; it cannot be unbounded or span multiple rows or columns.
-                  # All indexes are zero-based.
-                  # Indexes are half open: the start index is inclusive
-                  # and the end index is exclusive.
-                  # Missing indexes indicate the range is unbounded on that side.
-                "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
-                "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
-                "sheetId": 42, # The sheet this span is on.
-                "dimension": "A String", # The dimension of the span.
+              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to sort by; cells with this fill color are sorted
+                  # to the top. Mutually exclusive with foreground_color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
-              "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
-            },
-            "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
-                # specified.
-            "metadataKey": "A String", # The metadata key. There may be multiple metadata in a spreadsheet with the
-                # same key.  Developer metadata must always have a key specified.
-          },
-        ],
-        "columnGroups": [ # All column groups on this sheet, ordered by increasing range start index,
-            # then by group depth.
-          { # A group over an interval of rows or columns on a sheet, which can contain or
-              # be contained within other groups. A group can be collapsed or expanded as a
-              # unit on the sheet.
-            "range": { # A range along a single dimension on a sheet. # The range over which this group exists.
-                # All indexes are zero-based.
-                # Indexes are half open: the start index is inclusive
-                # and the end index is exclusive.
-                # Missing indexes indicate the range is unbounded on that side.
-              "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
-              "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
-              "sheetId": 42, # The sheet this span is on.
-              "dimension": "A String", # The dimension of the span.
-            },
-            "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
-                # collapsed if an overlapping group at a shallower depth is expanded.
-                #
-                # A true value does not imply that all dimensions within the group are
-                # hidden, since a dimension's visibility can change independently from this
-                # group property. However, when this property is updated, all dimensions
-                # within it are set to hidden if this field is true, or set to visible if
-                # this field is false.
-            "depth": 42, # The depth of the group, representing how many groups have a range that
-                # wholly contains the range of this group.
-          },
-        ],
-        "properties": { # Properties of a sheet. # The properties of the sheet.
-          "sheetType": "A String", # The type of sheet. Defaults to GRID.
-              # This field cannot be changed once set.
-          "index": 42, # The index of the sheet within the spreadsheet.
-              # When adding or updating sheet properties, if this field
-              # is excluded then the sheet is added or moved to the end
-              # of the sheet list. When updating sheet indices or inserting
-              # sheets, movement is considered in "before the move" indexes.
-              # For example, if there were 3 sheets (S1, S2, S3) in order to
-              # move S1 ahead of S2 the index would have to be set to 2. A sheet
-              # index update request is ignored if the requested index is
-              # identical to the sheets current index or if the requested new
-              # index is equal to the current sheet index + 1.
-          "title": "A String", # The name of the sheet.
-          "gridProperties": { # Properties of a grid. # Additional properties of the sheet if this sheet is a grid.
-              # (If the sheet is an object sheet, containing a chart or image, then
-              # this field will be absent.)
-              # When writing it is an error to set any grid properties on non-grid sheets.
-            "columnCount": 42, # The number of columns in the grid.
-            "rowGroupControlAfter": True or False, # True if the row grouping control toggle is shown after the group.
-            "columnGroupControlAfter": True or False, # True if the column grouping control toggle is shown after the group.
-            "frozenRowCount": 42, # The number of rows that are frozen in the grid.
-            "frozenColumnCount": 42, # The number of columns that are frozen in the grid.
-            "rowCount": 42, # The number of rows in the grid.
-            "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI.
-          },
-          "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet.
-          "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI.
-              # for simplicity of conversion to/from color representations in various
-              # languages over compactness; for example, the fields of this representation
-              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-              # method in iOS; and, with just a little work, it can be easily formatted into
-              # a CSS "rgba()" string in JavaScript, as well.
-              #
-              # Note: this proto does not carry information about the absolute color space
-              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-              # space.
-              #
-              # Example (Java):
-              #
-              #      import com.google.type.Color;
-              #
-              #      // ...
-              #      public static java.awt.Color fromProto(Color protocolor) {
-              #        float alpha = protocolor.hasAlpha()
-              #            ? protocolor.getAlpha().getValue()
-              #            : 1.0;
-              #
-              #        return new java.awt.Color(
-              #            protocolor.getRed(),
-              #            protocolor.getGreen(),
-              #            protocolor.getBlue(),
-              #            alpha);
-              #      }
-              #
-              #      public static Color toProto(java.awt.Color color) {
-              #        float red = (float) color.getRed();
-              #        float green = (float) color.getGreen();
-              #        float blue = (float) color.getBlue();
-              #        float denominator = 255.0;
-              #        Color.Builder resultBuilder =
-              #            Color
-              #                .newBuilder()
-              #                .setRed(red / denominator)
-              #                .setGreen(green / denominator)
-              #                .setBlue(blue / denominator);
-              #        int alpha = color.getAlpha();
-              #        if (alpha != 255) {
-              #          result.setAlpha(
-              #              FloatValue
-              #                  .newBuilder()
-              #                  .setValue(((float) alpha) / denominator)
-              #                  .build());
-              #        }
-              #        return resultBuilder.build();
-              #      }
-              #      // ...
-              #
-              # Example (iOS / Obj-C):
-              #
-              #      // ...
-              #      static UIColor* fromProto(Color* protocolor) {
-              #         float red = [protocolor red];
-              #         float green = [protocolor green];
-              #         float blue = [protocolor blue];
-              #         FloatValue* alpha_wrapper = [protocolor alpha];
-              #         float alpha = 1.0;
-              #         if (alpha_wrapper != nil) {
-              #           alpha = [alpha_wrapper value];
-              #         }
-              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-              #      }
-              #
-              #      static Color* toProto(UIColor* color) {
-              #          CGFloat red, green, blue, alpha;
-              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-              #            return nil;
-              #          }
-              #          Color* result = [[Color alloc] init];
-              #          [result setRed:red];
-              #          [result setGreen:green];
-              #          [result setBlue:blue];
-              #          if (alpha <= 0.9999) {
-              #            [result setAlpha:floatWrapperWithValue(alpha)];
-              #          }
-              #          [result autorelease];
-              #          return result;
-              #     }
-              #     // ...
-              #
-              #  Example (JavaScript):
-              #
-              #     // ...
-              #
-              #     var protoToCssColor = function(rgb_color) {
-              #        var redFrac = rgb_color.red || 0.0;
-              #        var greenFrac = rgb_color.green || 0.0;
-              #        var blueFrac = rgb_color.blue || 0.0;
-              #        var red = Math.floor(redFrac * 255);
-              #        var green = Math.floor(greenFrac * 255);
-              #        var blue = Math.floor(blueFrac * 255);
-              #
-              #        if (!('alpha' in rgb_color)) {
-              #           return rgbToCssColor_(red, green, blue);
-              #        }
-              #
-              #        var alphaFrac = rgb_color.alpha.value || 0.0;
-              #        var rgbParams = [red, green, blue].join(',');
-              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-              #     };
-              #
-              #     var rgbToCssColor_ = function(red, green, blue) {
-              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-              #       var hexString = rgbNumber.toString(16);
-              #       var missingZeros = 6 - hexString.length;
-              #       var resultBuilder = ['#'];
-              #       for (var i = 0; i < missingZeros; i++) {
-              #          resultBuilder.push('0');
-              #       }
-              #       resultBuilder.push(hexString);
-              #       return resultBuilder.join('');
-              #     };
-              #
-              #     // ...
-            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                # the final pixel color is defined by the equation:
-                #
-                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                #
-                # This means that a value of 1.0 corresponds to a solid color, whereas
-                # a value of 0.0 corresponds to a completely transparent color. This
-                # uses a wrapper message rather than a simple float scalar so that it is
-                # possible to distinguish between a default value and the value being unset.
-                # If omitted, this color object is to be rendered as a solid color
-                # (as if the alpha value had been explicitly given with a value of 1.0).
-            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-          },
-          "hidden": True or False, # True if the sheet is hidden in the UI, false if it's visible.
-          "sheetId": 42, # The ID of the sheet. Must be non-negative.
-              # This field cannot be changed once set.
-        },
-        "filterViews": [ # The filter views in this sheet.
-          { # A filter view.
-            "title": "A String", # The name of the filter view.
-            "namedRangeId": "A String", # The named range this filter view is backed by, if any.
-                #
-                # When writing, only one of range or named_range_id
-                # may be set.
-            "filterViewId": 42, # The ID of the filter view.
-            "range": { # A range on a sheet. # The range this filter view covers.
-                #
-                # When writing, only one of range or named_range_id
-                # may be set.
-                # All indexes are zero-based.
-                # Indexes are half open, e.g the start index is inclusive
-                # and the end index is exclusive -- [start_index, end_index).
-                # Missing indexes indicate the range is unbounded on that side.
-                #
-                # For example, if `"Sheet1"` is sheet ID 0, then:
-                #
-                #   `Sheet1!A1:A1 == sheet_id: 0,
-                #                   start_row_index: 0, end_row_index: 1,
-                #                   start_column_index: 0, end_column_index: 1`
-                #
-                #   `Sheet1!A3:B4 == sheet_id: 0,
-                #                   start_row_index: 2, end_row_index: 4,
-                #                   start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A:B == sheet_id: 0,
-                #                 start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A5:B == sheet_id: 0,
-                #                  start_row_index: 4,
-                #                  start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1 == sheet_id:0`
-                #
-                # The start index must always be less than or equal to the end index.
-                # If the start index equals the end index, then the range is empty.
-                # Empty ranges are typically not meaningful and are usually rendered in the
-                # UI as `#REF!`.
-              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-              "sheetId": 42, # The sheet this range is on.
-              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-            },
-            "sortSpecs": [ # The sort order per column. Later specifications are used when values
-                # are equal in the earlier specifications.
-              { # A sort order associated with a specific column or row.
-                "sortOrder": "A String", # The order data should be sorted.
-                "dimensionIndex": 42, # The dimension the sort should be applied to.
-              },
-            ],
-            "criteria": { # The criteria for showing/hiding values per column.
-                # The map's key is the column index, and the value is the criteria for
-                # that column.
-              "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
-                "hiddenValues": [ # Values that should be hidden.
-                  "A String",
-                ],
-                "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
-                    # (This does not override hiddenValues -- if a value is listed there,
-                    #  it will still be hidden.)
-                    # BooleanConditions are used by conditional formatting,
-                    # data validation, and the criteria in filters.
-                  "values": [ # The values of the condition. The number of supported values depends
-                      # on the condition type.  Some support zero values,
-                      # others one or two values,
-                      # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
-                    { # The value of the condition.
-                      "relativeDate": "A String", # A relative date (based on the current date).
-                          # Valid only if the type is
-                          # DATE_BEFORE,
-                          # DATE_AFTER,
-                          # DATE_ON_OR_BEFORE or
-                          # DATE_ON_OR_AFTER.
-                          #
-                          # Relative dates are not supported in data validation.
-                          # They are supported only in conditional formatting and
-                          # conditional filters.
-                      "userEnteredValue": "A String", # A value the condition is based on.
-                          # The value is parsed as if the user typed into a cell.
-                          # Formulas are supported (and must begin with an `=` or a '+').
-                    },
-                  ],
-                  "type": "A String", # The type of condition.
-                },
-              },
-            },
-          },
-        ],
-        "charts": [ # The specifications of every chart on this sheet.
-          { # A chart embedded in a sheet.
-            "chartId": 42, # The ID of the chart.
-            "position": { # The position of an embedded object such as a chart. # The position of the chart.
-              "newSheet": True or False, # If true, the embedded object is put on a new sheet whose ID
-                  # is chosen for you. Used only when writing.
-              "sheetId": 42, # The sheet this is on. Set only if the embedded object
-                  # is on its own sheet. Must be non-negative.
-              "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid.
-                "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to.
-                    # All indexes are zero-based.
-                  "rowIndex": 42, # The row index of the coordinate.
-                  "columnIndex": 42, # The column index of the coordinate.
-                  "sheetId": 42, # The sheet this coordinate is on.
-                },
-                "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
-                "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
-                    # from the anchor cell.
-                "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
-                    # from the anchor cell.
-                "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
-              },
-            },
-            "spec": { # The specifications of a chart. # The specification of the chart.
-              "fontName": "A String", # The name of the font to use by default for all chart text (e.g. title,
-                  # axis labels, legend).  If a font is specified for a specific part of the
-                  # chart it will override this font name.
-              "altText": "A String", # The alternative text that describes the chart.  This is often used
-                  # for accessibility.
-              "subtitle": "A String", # The subtitle of the chart.
-              "subtitleTextFormat": { # The format of a run of text in a cell. # The subtitle text format.
-                  # Strikethrough and underline are not supported.
-                  # Absent values indicate that the field isn't specified.
-                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+              "foregroundColorStyle": { # A color value. # The foreground color to sort by; cells with this foreground color are
+                  # sorted to the top. Mutually exclusive with background_color, and must
+                  # be an RGB-type color. If foreground_color is also set, this field takes
+                  # precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
                     # for simplicity of conversion to/from color representations in various
                     # languages over compactness; for example, the fields of this representation
                     # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -72594,14 +148750,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -72631,11 +148787,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -72658,12 +148814,3564 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
-                "bold": True or False, # True if the text is bold.
-                "strikethrough": True or False, # True if the text has a strikethrough.
-                "fontFamily": "A String", # The font family.
-                "fontSize": 42, # The size of the font.
-                "italic": True or False, # True if the text is italicized.
-                "underline": True or False, # True if the text is underlined.
+              },
+              "backgroundColorStyle": { # A color value. # The background fill color to sort by; cells with this fill color are sorted
+                  # to the top. Mutually exclusive with foreground_color, and must be an
+                  # RGB-type color. If background_color is also set, this field takes
+                  # precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "sortOrder": "A String", # The order data should be sorted.
+              "dimensionIndex": 42, # The dimension the sort should be applied to.
+            },
+          ],
+          "criteria": { # The criteria for showing/hiding values per column.
+              # The map's key is the column index, and the value is the criteria for
+              # that column.
+            "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
+              "visibleBackgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to filter by; only cells with this fill color are
+                  # shown. Mutually exclusive with visible_foreground_color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "hiddenValues": [ # Values that should be hidden.
+                "A String",
+              ],
+              "visibleBackgroundColorStyle": { # A color value. # The background fill color to filter by; only cells with this fill color are
+                  # shown. This field is mutually exclusive with visible_foreground_color,
+                  # and must be set to an RGB-type color. If visible_background_color is
+                  # also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "visibleForegroundColorStyle": { # A color value. # The foreground color to filter by; only cells with this foreground color
+                  # are shown. This field is mutually exclusive with
+                  # visible_background_color, and must be set to an RGB-type color. If
+                  # visible_foreground_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "visibleForegroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to filter by; only cells with this foreground color
+                  # are shown. Mutually exclusive with visible_background_color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
+                  # (This does not override hidden_values -- if a value is listed there,
+                  #  it will still be hidden.)
+                  # BooleanConditions are used by conditional formatting,
+                  # data validation, and the criteria in filters.
+                "values": [ # The values of the condition. The number of supported values depends
+                    # on the condition type.  Some support zero values,
+                    # others one or two values,
+                    # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                  { # The value of the condition.
+                    "relativeDate": "A String", # A relative date (based on the current date).
+                        # Valid only if the type is
+                        # DATE_BEFORE,
+                        # DATE_AFTER,
+                        # DATE_ON_OR_BEFORE or
+                        # DATE_ON_OR_AFTER.
+                        #
+                        # Relative dates are not supported in data validation.
+                        # They are supported only in conditional formatting and
+                        # conditional filters.
+                    "userEnteredValue": "A String", # A value the condition is based on.
+                        # The value is parsed as if the user typed into a cell.
+                        # Formulas are supported (and must begin with an `=` or a '+').
+                  },
+                ],
+                "type": "A String", # The type of condition.
+              },
+            },
+          },
+        },
+        "developerMetadata": [ # The developer metadata associated with a sheet.
+          { # Developer metadata associated with a location or object in a spreadsheet.
+              # Developer metadata may be used to associate arbitrary data with various
+              # parts of a spreadsheet and will remain associated at those locations as they
+              # move around and the spreadsheet is edited.  For example, if developer
+              # metadata is associated with row 5 and another row is then subsequently
+              # inserted above row 5, that original metadata will still be associated with
+              # the row it was first associated with (what is now row 6). If the associated
+              # object is deleted its metadata is deleted too.
+            "metadataId": 42, # The spreadsheet-scoped unique ID that identifies the metadata. IDs may be
+                # specified when metadata is created, otherwise one will be randomly
+                # generated and assigned. Must be positive.
+            "metadataValue": "A String", # Data associated with the metadata's key.
+            "location": { # A location where metadata may be associated in a spreadsheet. # The location where the metadata is associated.
+              "locationType": "A String", # The type of location this object represents.  This field is read-only.
+              "dimensionRange": { # A range along a single dimension on a sheet. # Represents the row or column when metadata is associated with
+                  # a dimension. The specified DimensionRange must represent a single row
+                  # or column; it cannot be unbounded or span multiple rows or columns.
+                  # All indexes are zero-based.
+                  # Indexes are half open: the start index is inclusive
+                  # and the end index is exclusive.
+                  # Missing indexes indicate the range is unbounded on that side.
+                "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
+                "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
+                "sheetId": 42, # The sheet this span is on.
+                "dimension": "A String", # The dimension of the span.
+              },
+              "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+              "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
+            },
+            "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
+                # specified.
+            "metadataKey": "A String", # The metadata key. There may be multiple metadata in a spreadsheet with the
+                # same key.  Developer metadata must always have a key specified.
+          },
+        ],
+        "conditionalFormats": [ # The conditional format rules in this sheet.
+          { # A rule describing a conditional format.
+            "ranges": [ # The ranges that are formatted if the condition is true.
+                # All the ranges must be on the same grid.
+              { # A range on a sheet.
+                  # All indexes are zero-based.
+                  # Indexes are half open, e.g the start index is inclusive
+                  # and the end index is exclusive -- [start_index, end_index).
+                  # Missing indexes indicate the range is unbounded on that side.
+                  #
+                  # For example, if `"Sheet1"` is sheet ID 0, then:
+                  #
+                  #   `Sheet1!A1:A1 == sheet_id: 0,
+                  #                   start_row_index: 0, end_row_index: 1,
+                  #                   start_column_index: 0, end_column_index: 1`
+                  #
+                  #   `Sheet1!A3:B4 == sheet_id: 0,
+                  #                   start_row_index: 2, end_row_index: 4,
+                  #                   start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1!A:B == sheet_id: 0,
+                  #                 start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1!A5:B == sheet_id: 0,
+                  #                  start_row_index: 4,
+                  #                  start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1 == sheet_id:0`
+                  #
+                  # The start index must always be less than or equal to the end index.
+                  # If the start index equals the end index, then the range is empty.
+                  # Empty ranges are typically not meaningful and are usually rendered in the
+                  # UI as `#REF!`.
+                "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "sheetId": 42, # The sheet this range is on.
+                "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              },
+            ],
+            "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
+              "condition": { # A condition that can evaluate to true or false. # The condition of the rule. If the condition evaluates to true,
+                  # the format is applied.
+                  # BooleanConditions are used by conditional formatting,
+                  # data validation, and the criteria in filters.
+                "values": [ # The values of the condition. The number of supported values depends
+                    # on the condition type.  Some support zero values,
+                    # others one or two values,
+                    # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                  { # The value of the condition.
+                    "relativeDate": "A String", # A relative date (based on the current date).
+                        # Valid only if the type is
+                        # DATE_BEFORE,
+                        # DATE_AFTER,
+                        # DATE_ON_OR_BEFORE or
+                        # DATE_ON_OR_AFTER.
+                        #
+                        # Relative dates are not supported in data validation.
+                        # They are supported only in conditional formatting and
+                        # conditional filters.
+                    "userEnteredValue": "A String", # A value the condition is based on.
+                        # The value is parsed as if the user typed into a cell.
+                        # Formulas are supported (and must begin with an `=` or a '+').
+                  },
+                ],
+                "type": "A String", # The type of condition.
+              },
+              "format": { # The format of a cell. # The format to apply.
+                  # Conditional formatting can only apply a subset of formatting:
+                  # bold, italic,
+                  # strikethrough,
+                  # foreground color &amp;
+                  # background color.
+                "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                    # When updating padding, every field must be specified.
+                  "top": 42, # The top padding of the cell.
+                  "left": 42, # The left padding of the cell.
+                  "right": 42, # The right padding of the cell.
+                  "bottom": 42, # The bottom padding of the cell.
+                },
+                "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
+                  "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
+                      # the user's locale will be used if necessary for the given type.
+                      # See the [Date and Number Formats guide](/sheets/api/guides/formats) for
+                      # more information about the supported patterns.
+                  "type": "A String", # The type of the number format.
+                      # When writing, this field must be set.
+                },
+                "textDirection": "A String", # The direction of the text in the cell.
+                "backgroundColorStyle": { # A color value. # The background color of the cell.
+                    # If background_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
+                "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                "borders": { # The borders of the cell. # The borders of the cell.
+                  "top": { # A border along a cell. # The top border of the cell.
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "width": 42, # The width of the border, in pixels.
+                        # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "style": "A String", # The style of the border.
+                  },
+                  "left": { # A border along a cell. # The left border of the cell.
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "width": 42, # The width of the border, in pixels.
+                        # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "style": "A String", # The style of the border.
+                  },
+                  "right": { # A border along a cell. # The right border of the cell.
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "width": 42, # The width of the border, in pixels.
+                        # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "style": "A String", # The style of the border.
+                  },
+                  "bottom": { # A border along a cell. # The bottom border of the cell.
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "width": 42, # The width of the border, in pixels.
+                        # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "style": "A String", # The style of the border.
+                  },
+                },
+                "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                  "angle": 42, # The angle between the standard orientation and the desired orientation.
+                      # Measured in degrees. Valid values are between -90 and 90. Positive
+                      # angles are angled upwards, negative are angled downwards.
+                      #
+                      # Note: For LTR text direction positive angles are in the
+                      # counterclockwise direction, whereas for RTL they are in the clockwise
+                      # direction
+                  "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                      # characters is unchanged.
+                      # For example:
+                      #
+                      #     | V |
+                      #     | e |
+                      #     | r |
+                      #     | t |
+                      #     | i |
+                      #     | c |
+                      #     | a |
+                      #     | l |
+                },
+                "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
+                "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
+                    # Absent values indicate that the field isn't specified.
+                  "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "strikethrough": True or False, # True if the text has a strikethrough.
+                  "fontFamily": "A String", # The font family.
+                  "fontSize": 42, # The size of the font.
+                  "italic": True or False, # True if the text is italicized.
+                  "underline": True or False, # True if the text is underlined.
+                },
+                "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+              },
+            },
+            "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule.
+                # the interpolation points listed. The format of a cell will vary
+                # based on its contents as compared to the values of the interpolation
+                # points.
+              "maxpoint": { # A single interpolation point on a gradient conditional format. # The final interpolation point.
+                  # These pin the gradient color scale according to the color,
+                  # type and value chosen.
+                "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "type": "A String", # How the value should be interpreted.
+                "value": "A String", # The value this interpolation point uses.  May be a formula.
+                    # Unused if type is MIN or
+                    # MAX.
+              },
+              "midpoint": { # A single interpolation point on a gradient conditional format. # An optional midway interpolation point.
+                  # These pin the gradient color scale according to the color,
+                  # type and value chosen.
+                "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "type": "A String", # How the value should be interpreted.
+                "value": "A String", # The value this interpolation point uses.  May be a formula.
+                    # Unused if type is MIN or
+                    # MAX.
+              },
+              "minpoint": { # A single interpolation point on a gradient conditional format. # The starting interpolation point.
+                  # These pin the gradient color scale according to the color,
+                  # type and value chosen.
+                "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "type": "A String", # How the value should be interpreted.
+                "value": "A String", # The value this interpolation point uses.  May be a formula.
+                    # Unused if type is MIN or
+                    # MAX.
+              },
+            },
+          },
+        ],
+        "charts": [ # The specifications of every chart on this sheet.
+          { # A chart embedded in a sheet.
+            "chartId": 42, # The ID of the chart.
+            "position": { # The position of an embedded object such as a chart. # The position of the chart.
+              "newSheet": True or False, # If true, the embedded object is put on a new sheet whose ID
+                  # is chosen for you. Used only when writing.
+              "sheetId": 42, # The sheet this is on. Set only if the embedded object
+                  # is on its own sheet. Must be non-negative.
+              "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid.
+                "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to.
+                    # All indexes are zero-based.
+                  "rowIndex": 42, # The row index of the coordinate.
+                  "columnIndex": 42, # The column index of the coordinate.
+                  "sheetId": 42, # The sheet this coordinate is on.
+                },
+                "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
+                    # from the anchor cell.
+                "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
+                "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
+                    # from the anchor cell.
+                "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
+              },
+            },
+            "spec": { # The specifications of a chart. # The specification of the chart.
+              "fontName": "A String", # The name of the font to use by default for all chart text (e.g. title,
+                  # axis labels, legend).  If a font is specified for a specific part of the
+                  # chart it will override this font name.
+              "altText": "A String", # The alternative text that describes the chart.  This is often used
+                  # for accessibility.
+              "subtitle": "A String", # The subtitle of the chart.
+              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the entire chart.
+                  # Not applicable to Org charts.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
               "title": "A String", # The title of the chart.
               "titleTextFormat": { # The format of a run of text in a cell. # The title text format.
@@ -72739,14 +152447,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -72776,11 +152484,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -72804,20 +152512,158 @@
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
                 "bold": True or False, # True if the text is bold.
+                "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                    # If foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "strikethrough": True or False, # True if the text has a strikethrough.
                 "fontFamily": "A String", # The font family.
                 "fontSize": 42, # The size of the font.
                 "italic": True or False, # True if the text is italicized.
                 "underline": True or False, # True if the text is underlined.
               },
-              "treemapChart": { # A <a href="/chart/interactive/docs/gallery/treemap">Treemap chart</a>. # A treemap chart specification.
+              "treemapChart": { # A &lt;a href="/chart/interactive/docs/gallery/treemap"&gt;Treemap chart&lt;/a&gt;. # A treemap chart specification.
                 "parentLabels": { # The data included in a domain or series. # The data the contains the treemap cells' parent labels.
                   "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                     "sources": [ # The ranges of data for a series or domain.
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -72869,66 +152715,139 @@
                     ],
                   },
                 },
-                "sizeData": { # The data included in a domain or series. # The data that determines the size of each treemap data cell. This data is
-                    # expected to be numeric. The cells corresponding to non-numeric or missing
-                    # data will not be rendered. If color_data is not specified, this data
-                    # is used to determine data cell background colors as well.
-                  "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
-                    "sources": [ # The ranges of data for a series or domain.
-                        # Exactly one dimension must have a length of 1,
-                        # and all sources in the list must have the same dimension
-                        # with length 1.
-                        # The domain (if it exists) & all series must have the same number
-                        # of source ranges. If using more than one source range, then the source
-                        # range at a given offset must be in order and contiguous across the domain
-                        # and series.
-                        #
-                        # For example, these are valid configurations:
-                        #
-                        #     domain sources: A1:A5
-                        #     series1 sources: B1:B5
-                        #     series2 sources: D6:D10
-                        #
-                        #     domain sources: A1:A5, C10:C12
-                        #     series1 sources: B1:B5, D10:D12
-                        #     series2 sources: C1:C5, E10:E12
-                      { # A range on a sheet.
-                          # All indexes are zero-based.
-                          # Indexes are half open, e.g the start index is inclusive
-                          # and the end index is exclusive -- [start_index, end_index).
-                          # Missing indexes indicate the range is unbounded on that side.
-                          #
-                          # For example, if `"Sheet1"` is sheet ID 0, then:
-                          #
-                          #   `Sheet1!A1:A1 == sheet_id: 0,
-                          #                   start_row_index: 0, end_row_index: 1,
-                          #                   start_column_index: 0, end_column_index: 1`
-                          #
-                          #   `Sheet1!A3:B4 == sheet_id: 0,
-                          #                   start_row_index: 2, end_row_index: 4,
-                          #                   start_column_index: 0, end_column_index: 2`
-                          #
-                          #   `Sheet1!A:B == sheet_id: 0,
-                          #                 start_column_index: 0, end_column_index: 2`
-                          #
-                          #   `Sheet1!A5:B == sheet_id: 0,
-                          #                  start_row_index: 4,
-                          #                  start_column_index: 0, end_column_index: 2`
-                          #
-                          #   `Sheet1 == sheet_id:0`
-                          #
-                          # The start index must always be less than or equal to the end index.
-                          # If the start index equals the end index, then the range is empty.
-                          # Empty ranges are typically not meaningful and are usually rendered in the
-                          # UI as `#REF!`.
-                        "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-                        "sheetId": 42, # The sheet this range is on.
-                        "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-                      },
-                    ],
-                  },
+                "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for header cells.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
                 "hideTooltips": True or False, # True to hide tooltips.
                 "colorScale": { # A color scale for a treemap chart. # The color scale for data cells in the treemap chart. Data cells are
@@ -72947,6 +152866,142 @@
                     # Cells with missing or non-numeric color values will have
                     # noDataColor as their background
                     # color.
+                  "maxValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value greater than or equal
+                      # to maxValue. Defaults to #109618 if not
+                      # specified.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
                   "noDataColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells that have no color data associated with
                       # them. Defaults to #000000 if not specified.
                       # for simplicity of conversion to/from color representations in various
@@ -73018,14 +153073,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -73055,11 +153110,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -73082,6 +153137,562 @@
                     "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
+                  "midValueColorStyle": { # A color value. # The background color for cells with a color value at the midpoint between
+                      # minValue and
+                      # maxValue. Defaults to #efe6dc if not
+                      # specified.
+                      # If mid_value_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "maxValueColorStyle": { # A color value. # The background color for cells with a color value greater than or equal
+                      # to maxValue. Defaults to #109618 if not
+                      # specified.
+                      # If max_value_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "minValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value less than or equal to
+                      # minValue. Defaults to #dc3912 if not
+                      # specified.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "noDataColorStyle": { # A color value. # The background color for cells that have no color data associated with
+                      # them. Defaults to #000000 if not specified.
+                      # If no_data_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "midValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value at the midpoint between
                       # minValue and
                       # maxValue. Defaults to #efe6dc if not
@@ -73155,14 +153766,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -73192,11 +153803,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -73219,277 +153830,145 @@
                     "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
-                  "minValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value less than or equal to
+                  "minValueColorStyle": { # A color value. # The background color for cells with a color value less than or equal to
                       # minValue. Defaults to #dc3912 if not
                       # specified.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
+                      # If min_value_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
                         #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
                         #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                  },
-                  "maxValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value greater than or equal
-                      # to maxValue. Defaults to #109618 if not
-                      # specified.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
+                        # Example (Java):
                         #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #      import com.google.type.Color;
                         #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
                   },
                 },
                 "labels": { # The data included in a domain or series. # The data that contains the treemap cell labels.
@@ -73498,7 +153977,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -73560,7 +154039,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -73616,147 +154095,74 @@
                     # have the same color as cells with this value. If not specified, defaults
                     # to the actual maximum value from color_data, or the maximum value from
                     # size_data if color_data is not specified.
+                "levels": 42, # The number of data levels to show on the treemap chart. These levels are
+                    # interactive and are shown with their labels. Defaults to 2 if not
+                    # specified.
                 "minValue": 3.14, # The minimum possible data value. Cells with values less than this will
                     # have the same color as cells with this value. If not specified, defaults
                     # to the actual minimum value from color_data, or the minimum value from
                     # size_data if color_data is not specified.
-                "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for header cells.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                "sizeData": { # The data included in a domain or series. # The data that determines the size of each treemap data cell. This data is
+                    # expected to be numeric. The cells corresponding to non-numeric or missing
+                    # data will not be rendered. If color_data is not specified, this data
+                    # is used to determine data cell background colors as well.
+                  "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                    "sources": [ # The ranges of data for a series or domain.
+                        # Exactly one dimension must have a length of 1,
+                        # and all sources in the list must have the same dimension
+                        # with length 1.
+                        # The domain (if it exists) &amp; all series must have the same number
+                        # of source ranges. If using more than one source range, then the source
+                        # range at a given offset must be in order and contiguous across the domain
+                        # and series.
+                        #
+                        # For example, these are valid configurations:
+                        #
+                        #     domain sources: A1:A5
+                        #     series1 sources: B1:B5
+                        #     series2 sources: D6:D10
+                        #
+                        #     domain sources: A1:A5, C10:C12
+                        #     series1 sources: B1:B5, D10:D12
+                        #     series2 sources: C1:C5, E10:E12
+                      { # A range on a sheet.
+                          # All indexes are zero-based.
+                          # Indexes are half open, e.g the start index is inclusive
+                          # and the end index is exclusive -- [start_index, end_index).
+                          # Missing indexes indicate the range is unbounded on that side.
+                          #
+                          # For example, if `"Sheet1"` is sheet ID 0, then:
+                          #
+                          #   `Sheet1!A1:A1 == sheet_id: 0,
+                          #                   start_row_index: 0, end_row_index: 1,
+                          #                   start_column_index: 0, end_column_index: 1`
+                          #
+                          #   `Sheet1!A3:B4 == sheet_id: 0,
+                          #                   start_row_index: 2, end_row_index: 4,
+                          #                   start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A:B == sheet_id: 0,
+                          #                 start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A5:B == sheet_id: 0,
+                          #                  start_row_index: 4,
+                          #                  start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1 == sheet_id:0`
+                          #
+                          # The start index must always be less than or equal to the end index.
+                          # If the start index equals the end index, then the range is empty.
+                          # Empty ranges are typically not meaningful and are usually rendered in the
+                          # UI as `#REF!`.
+                        "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "sheetId": 42, # The sheet this range is on.
+                        "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      },
+                    ],
+                  },
                 },
-                "levels": 42, # The number of data levels to show on the treemap chart. These levels are
-                    # interactive and are shown with their labels. Defaults to 2 if not
-                    # specified.
                 "hintedLevels": 42, # The number of additional data levels beyond the labeled levels to be shown
                     # on the treemap chart. These levels are not interactive and are shown
                     # without their labels. Defaults to 0 if not specified.
@@ -73832,14 +154238,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -73869,11 +154275,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -73897,26 +154303,1706 @@
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
                   "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "strikethrough": True or False, # True if the text has a strikethrough.
                   "fontFamily": "A String", # The font family.
                   "fontSize": 42, # The size of the font.
                   "italic": True or False, # True if the text is italicized.
                   "underline": True or False, # True if the text is underlined.
                 },
+                "headerColorStyle": { # A color value. # The background color for header cells.
+                    # If header_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+              },
+              "scorecardChart": { # A scorecard chart. Scorecard charts are used to highlight key performance # A scorecard chart specification.
+                  # indicators, known as KPIs, on the spreadsheet. A scorecard chart can
+                  # represent things like total sales, average cost, or a top selling item. You
+                  # can specify a single data value, or aggregate over a range of data.
+                  # Percentage or absolute difference from a baseline value can be highlighted,
+                  # like changes over time.
+                "numberFormatSource": "A String", # The number format source used in the scorecard chart.
+                    # This field is optional.
+                "customFormatOptions": { # Custom number formatting options for chart attributes. # Custom formatting options for numeric key/baseline values in scorecard
+                    # chart. This field is used only when number_format_source is set to
+                    # CUSTOM. This field is optional.
+                  "prefix": "A String", # Custom prefix to be prepended to the chart attribute.
+                      # This field is optional.
+                  "suffix": "A String", # Custom suffix to be appended to the chart attribute.
+                      # This field is optional.
+                },
+                "keyValueFormat": { # Formatting options for key value. # Formatting options for key value.
+                  "position": { # Position settings for text. # Specifies the horizontal text positioning of key value.
+                      # This field is optional. If not specified, default positioning is used.
+                    "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
+                  },
+                  "textFormat": { # The format of a run of text in a cell. # Text formatting options for key value.
+                      # Absent values indicate that the field isn't specified.
+                    "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "bold": True or False, # True if the text is bold.
+                    "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                        # If foreground_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "strikethrough": True or False, # True if the text has a strikethrough.
+                    "fontFamily": "A String", # The font family.
+                    "fontSize": 42, # The size of the font.
+                    "italic": True or False, # True if the text is italicized.
+                    "underline": True or False, # True if the text is underlined.
+                  },
+                },
+                "aggregateType": "A String", # The aggregation type for key and baseline chart data in scorecard chart.
+                    # This field is optional.
+                "baselineValueFormat": { # Formatting options for baseline value. # Formatting options for baseline value.
+                    # This field is needed only if baseline_value_data is specified.
+                  "description": "A String", # Description which is appended after the baseline value.
+                      # This field is optional.
+                  "negativeColor": { # Represents a color in the RGBA color space. This representation is designed # Color to be used, in case baseline value represents a negative change for
+                      # key value. This field is optional.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "comparisonType": "A String", # The comparison type of key value with baseline value.
+                  "positiveColorStyle": { # A color value. # Color to be used, in case baseline value represents a positive change for
+                      # key value. This field is optional.
+                      # If positive_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "negativeColorStyle": { # A color value. # Color to be used, in case baseline value represents a negative change for
+                      # key value. This field is optional.
+                      # If negative_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "position": { # Position settings for text. # Specifies the horizontal text positioning of baseline value.
+                      # This field is optional. If not specified, default positioning is used.
+                    "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
+                  },
+                  "textFormat": { # The format of a run of text in a cell. # Text formatting options for baseline value.
+                      # Absent values indicate that the field isn't specified.
+                    "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "bold": True or False, # True if the text is bold.
+                    "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                        # If foreground_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "strikethrough": True or False, # True if the text has a strikethrough.
+                    "fontFamily": "A String", # The font family.
+                    "fontSize": 42, # The size of the font.
+                    "italic": True or False, # True if the text is italicized.
+                    "underline": True or False, # True if the text is underlined.
+                  },
+                  "positiveColor": { # Represents a color in the RGBA color space. This representation is designed # Color to be used, in case baseline value represents a positive change for
+                      # key value. This field is optional.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "keyValueData": { # The data included in a domain or series. # The data for scorecard key value.
+                  "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                    "sources": [ # The ranges of data for a series or domain.
+                        # Exactly one dimension must have a length of 1,
+                        # and all sources in the list must have the same dimension
+                        # with length 1.
+                        # The domain (if it exists) &amp; all series must have the same number
+                        # of source ranges. If using more than one source range, then the source
+                        # range at a given offset must be in order and contiguous across the domain
+                        # and series.
+                        #
+                        # For example, these are valid configurations:
+                        #
+                        #     domain sources: A1:A5
+                        #     series1 sources: B1:B5
+                        #     series2 sources: D6:D10
+                        #
+                        #     domain sources: A1:A5, C10:C12
+                        #     series1 sources: B1:B5, D10:D12
+                        #     series2 sources: C1:C5, E10:E12
+                      { # A range on a sheet.
+                          # All indexes are zero-based.
+                          # Indexes are half open, e.g the start index is inclusive
+                          # and the end index is exclusive -- [start_index, end_index).
+                          # Missing indexes indicate the range is unbounded on that side.
+                          #
+                          # For example, if `"Sheet1"` is sheet ID 0, then:
+                          #
+                          #   `Sheet1!A1:A1 == sheet_id: 0,
+                          #                   start_row_index: 0, end_row_index: 1,
+                          #                   start_column_index: 0, end_column_index: 1`
+                          #
+                          #   `Sheet1!A3:B4 == sheet_id: 0,
+                          #                   start_row_index: 2, end_row_index: 4,
+                          #                   start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A:B == sheet_id: 0,
+                          #                 start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A5:B == sheet_id: 0,
+                          #                  start_row_index: 4,
+                          #                  start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1 == sheet_id:0`
+                          #
+                          # The start index must always be less than or equal to the end index.
+                          # If the start index equals the end index, then the range is empty.
+                          # Empty ranges are typically not meaningful and are usually rendered in the
+                          # UI as `#REF!`.
+                        "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "sheetId": 42, # The sheet this range is on.
+                        "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      },
+                    ],
+                  },
+                },
+                "scaleFactor": 3.14, # Value to scale scorecard key and baseline value. For example, a factor of
+                    # 10 can be used to divide all values in the chart by 10.
+                    # This field is optional.
+                "baselineValueData": { # The data included in a domain or series. # The data for scorecard baseline value.
+                    # This field is optional.
+                  "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                    "sources": [ # The ranges of data for a series or domain.
+                        # Exactly one dimension must have a length of 1,
+                        # and all sources in the list must have the same dimension
+                        # with length 1.
+                        # The domain (if it exists) &amp; all series must have the same number
+                        # of source ranges. If using more than one source range, then the source
+                        # range at a given offset must be in order and contiguous across the domain
+                        # and series.
+                        #
+                        # For example, these are valid configurations:
+                        #
+                        #     domain sources: A1:A5
+                        #     series1 sources: B1:B5
+                        #     series2 sources: D6:D10
+                        #
+                        #     domain sources: A1:A5, C10:C12
+                        #     series1 sources: B1:B5, D10:D12
+                        #     series2 sources: C1:C5, E10:E12
+                      { # A range on a sheet.
+                          # All indexes are zero-based.
+                          # Indexes are half open, e.g the start index is inclusive
+                          # and the end index is exclusive -- [start_index, end_index).
+                          # Missing indexes indicate the range is unbounded on that side.
+                          #
+                          # For example, if `"Sheet1"` is sheet ID 0, then:
+                          #
+                          #   `Sheet1!A1:A1 == sheet_id: 0,
+                          #                   start_row_index: 0, end_row_index: 1,
+                          #                   start_column_index: 0, end_column_index: 1`
+                          #
+                          #   `Sheet1!A3:B4 == sheet_id: 0,
+                          #                   start_row_index: 2, end_row_index: 4,
+                          #                   start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A:B == sheet_id: 0,
+                          #                 start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A5:B == sheet_id: 0,
+                          #                  start_row_index: 4,
+                          #                  start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1 == sheet_id:0`
+                          #
+                          # The start index must always be less than or equal to the end index.
+                          # If the start index equals the end index, then the range is empty.
+                          # Empty ranges are typically not meaningful and are usually rendered in the
+                          # UI as `#REF!`.
+                        "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "sheetId": 42, # The sheet this range is on.
+                        "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      },
+                    ],
+                  },
+                },
               },
               "titleTextPosition": { # Position settings for text. # The title text position.
                   # This field is optional.
                 "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
               },
+              "backgroundColorStyle": { # A color value. # The background color of the entire chart.
+                  # Not applicable to Org charts.
+                  # If background_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
               "hiddenDimensionStrategy": "A String", # Determines how the charts will use hidden rows or columns.
-              "pieChart": { # A <a href="/chart/interactive/docs/gallery/piechart">pie chart</a>. # A pie chart specification.
+              "pieChart": { # A &lt;a href="/chart/interactive/docs/gallery/piechart"&gt;pie chart&lt;/a&gt;. # A pie chart specification.
                 "series": { # The data included in a domain or series. # The data that covers the one and only series of the pie chart.
                   "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                     "sources": [ # The ranges of data for a series or domain.
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -73974,7 +156060,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -74030,8 +156116,8 @@
                 "legendPosition": "A String", # Where the legend of the pie chart should be drawn.
                 "pieHole": 3.14, # The size of the hole in the pie chart.
               },
-              "candlestickChart": { # A <a href="/chart/interactive/docs/gallery/candlestickchart">candlestick # A candlestick chart specification.
-                  # chart</a>.
+              "candlestickChart": { # A &lt;a href="/chart/interactive/docs/gallery/candlestickchart"&gt;candlestick # A candlestick chart specification.
+                  # chart&lt;/a&gt;.
                 "domain": { # The domain of a CandlestickChart. # The domain data (horizontal axis) for the candlestick chart.  String data
                     # will be treated as discrete labels, other data will be treated as
                     # continuous values.
@@ -74042,7 +156128,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -74107,7 +156193,7 @@
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -74168,7 +156254,7 @@
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -74230,7 +156316,7 @@
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -74292,7 +156378,7 @@
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -74352,140 +156438,287 @@
                   # This field is optional.
                 "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
               },
-              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the entire chart.
-                  # Not applicable to Org charts.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
+              "subtitleTextFormat": { # The format of a run of text in a cell. # The subtitle text format.
+                  # Strikethrough and underline are not supported.
+                  # Absent values indicate that the field isn't specified.
+                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
                     #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
                     #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "bold": True or False, # True if the text is bold.
+                "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                    # If foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "strikethrough": True or False, # True if the text has a strikethrough.
+                "fontFamily": "A String", # The font family.
+                "fontSize": 42, # The size of the font.
+                "italic": True or False, # True if the text is italicized.
+                "underline": True or False, # True if the text is underlined.
               },
               "maximized": True or False, # True to make a chart fill the entire space in which it's rendered with
                   # minimum padding.  False to use the default padding.
@@ -74501,7 +156734,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -74634,14 +156867,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -74671,11 +156904,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -74698,6 +156931,144 @@
                         "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
+                      "colorStyle": { # A color value. # The color of the column.
+                          # If color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "label": "A String", # The label of the column's legend.
                     },
                     "subtotalColumnsStyle": { # Styles for a waterfall chart column. # Styles for all subtotal columns in this series.
@@ -74771,14 +157142,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -74808,11 +157179,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -74835,6 +157206,144 @@
                         "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
+                      "colorStyle": { # A color value. # The color of the column.
+                          # If color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "label": "A String", # The label of the column's legend.
                     },
                     "negativeColumnsStyle": { # Styles for a waterfall chart column. # Styles for all columns in this series with negative values.
@@ -74908,14 +157417,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -74945,11 +157454,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -74972,6 +157481,144 @@
                         "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
+                      "colorStyle": { # A color value. # The color of the column.
+                          # If color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "label": "A String", # The label of the column's legend.
                     },
                     "customSubtotals": [ # Custom subtotal columns appearing in this series. The order in which
@@ -74997,7 +157644,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -75059,6 +157706,8 @@
                   # of charts this supports.
                 "stackedType": "A String", # The stacked type for charts that support vertical stacking.
                     # Applies to Area, Bar, Column, Combo, and Stepped Area charts.
+                "compareMode": "A String", # The behavior of tooltips and data highlighting when hovering on data and
+                    # chart area.
                 "headerCount": 42, # The number of rows or columns in the data that are "headers".
                     # If not set, Google Sheets will guess how many rows are headers based
                     # on the data.
@@ -75069,8 +157718,147 @@
                   { # A single series of data in a chart.
                       # For example, if charting stock prices over time, multiple series may exist,
                       # one for the "Open Price", "High Price", "Low Price" and "Close Price".
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color for elements (i.e. bars, lines, points) associated with this
-                        # series.  If empty, a default color is used.
+                    "colorStyle": { # A color value. # The color for elements (such as bars, lines, and points) associated with
+                        # this series.  If empty, a default color is used.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color for elements (such as bars, lines, and points) associated with
+                        # this series.  If empty, a default color is used.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
                         # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -75140,14 +157928,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -75177,11 +157965,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -75210,7 +157998,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -75269,6 +158057,12 @@
                         # prices.
                         # It is an error to specify an axis that isn't a valid minor axis
                         # for the chart's type.
+                    "type": "A String", # The type of this series. Valid only if the
+                        # chartType is
+                        # COMBO.
+                        # Different types will change the way the series is visualized.
+                        # Only LINE, AREA,
+                        # and COLUMN are supported.
                     "lineStyle": { # Properties that describe the style of a line. # The line style of this series. Valid only if the
                         # chartType is AREA,
                         # LINE, or SCATTER.
@@ -75278,12 +158072,6 @@
                       "width": 42, # The thickness of the line, in px.
                       "type": "A String", # The dash type of the line.
                     },
-                    "type": "A String", # The type of this series. Valid only if the
-                        # chartType is
-                        # COMBO.
-                        # Different types will change the way the series is visualized.
-                        # Only LINE, AREA,
-                        # and COLUMN are supported.
                   },
                 ],
                 "interpolateNulls": True or False, # If some values in a series are missing, gaps may appear in the chart (e.g,
@@ -75293,8 +158081,8 @@
                 "legendPosition": "A String", # The position of the chart legend.
                 "lineSmoothing": True or False, # Gets whether all lines should be rendered smooth or straight by default.
                     # Applies to Line charts.
-                "compareMode": "A String", # The behavior of tooltips and data highlighting when hovering on data and
-                    # chart area.
+                "threeDimensional": True or False, # True to make the chart 3D.
+                    # Applies to Bar and Column charts.
                 "domains": [ # The domain of data this is charting.
                     # Only a single domain is supported.
                   { # The domain of a chart.
@@ -75307,7 +158095,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -75362,13 +158150,10 @@
                   },
                 ],
                 "chartType": "A String", # The type of the chart.
-                "threeDimensional": True or False, # True to make the chart 3D.
-                    # Applies to Bar and Column charts.
                 "axis": [ # The axis on the chart.
                   { # An axis of the chart.
                       # A chart may not have more than one axis per
                       # axis position.
-                    "position": "A String", # The position of this axis.
                     "format": { # The format of a run of text in a cell. # The format of the title.
                         # Only valid if the axis is not associated with the domain.
                         # Absent values indicate that the field isn't specified.
@@ -75442,14 +158227,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -75479,11 +158264,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -75507,21 +158292,168 @@
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
                       "bold": True or False, # True if the text is bold.
+                      "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                          # If foreground_color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "strikethrough": True or False, # True if the text has a strikethrough.
                       "fontFamily": "A String", # The font family.
                       "fontSize": 42, # The size of the font.
                       "italic": True or False, # True if the text is italicized.
                       "underline": True or False, # True if the text is underlined.
                     },
-                    "title": "A String", # The title of this axis. If set, this overrides any title inferred
-                        # from headers of the data.
+                    "position": "A String", # The position of this axis.
+                    "viewWindowOptions": { # The options that define a "view window" for a chart (such as the visible # The view window options for this axis.
+                        # values in an axis).
+                      "viewWindowMin": 3.14, # The minimum numeric value to be shown in this view window. If unset, will
+                          # automatically determine a minimum value that looks good for the data.
+                      "viewWindowMax": 3.14, # The maximum numeric value to be shown in this view window. If unset, will
+                          # automatically determine a maximum value that looks good for the data.
+                      "viewWindowMode": "A String", # The view window's mode.
+                    },
                     "titleTextPosition": { # Position settings for text. # The axis title text position.
                       "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
                     },
+                    "title": "A String", # The title of this axis. If set, this overrides any title inferred
+                        # from headers of the data.
                   },
                 ],
               },
-              "histogramChart": { # A <a href="/chart/interactive/docs/gallery/histogram">histogram chart</a>. # A histogram chart specification.
+              "histogramChart": { # A &lt;a href="/chart/interactive/docs/gallery/histogram"&gt;histogram chart&lt;/a&gt;. # A histogram chart specification.
                   # A histogram chart groups data items into bins, displaying each bin as a
                   # column of stacked items.  Histograms are used to display the distribution
                   # of a dataset.  Each column of items represents a range into which those
@@ -75608,14 +158540,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -75645,11 +158577,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -75672,13 +158604,152 @@
                       "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                       "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                     },
+                    "barColorStyle": { # A color value. # The color of the column representing this series in each bucket.
+                        # This field is optional.
+                        # If bar_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
                     "data": { # The data included in a domain or series. # The data for this histogram series.
                       "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                         "sources": [ # The ranges of data for a series or domain.
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -75741,141 +158812,9 @@
                     # Cannot be negative.
                     # This field is optional.
               },
-              "bubbleChart": { # A <a href="/chart/interactive/docs/gallery/bubblechart">bubble chart</a>. # A bubble chart specification.
-                "bubbleBorderColor": { # Represents a color in the RGBA color space. This representation is designed # The bubble border color.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                },
+              "bubbleChart": { # A &lt;a href="/chart/interactive/docs/gallery/bubblechart"&gt;bubble chart&lt;/a&gt;. # A bubble chart specification.
+                "bubbleOpacity": 3.14, # The opacity of the bubbles between 0 and 1.0.
+                    # 0 is fully transparent and 1 is fully opaque.
                 "domain": { # The data included in a domain or series. # The data containing the bubble x-values.  These values locate the bubbles
                     # in the chart horizontally.
                   "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
@@ -75883,7 +158822,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -76008,14 +158947,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -76045,11 +158984,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -76073,6 +159012,144 @@
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
                   "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "strikethrough": True or False, # True if the text has a strikethrough.
                   "fontFamily": "A String", # The font family.
                   "fontSize": 42, # The size of the font.
@@ -76086,7 +159163,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -76138,11 +159215,281 @@
                     ],
                   },
                 },
+                "bubbleBorderColorStyle": { # A color value. # The bubble border color.
+                    # If bubble_border_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "legendPosition": "A String", # Where the legend of the chart should be drawn.
                 "bubbleMaxRadiusSize": 42, # The max radius size of the bubbles, in pixels.
                     # If specified, the field must be a positive value.
-                "bubbleOpacity": 3.14, # The opacity of the bubbles between 0 and 1.0.
-                    # 0 is fully transparent and 1 is fully opaque.
+                "bubbleBorderColor": { # Represents a color in the RGBA color space. This representation is designed # The bubble border color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
                 "groupIds": { # The data included in a domain or series. # The data containing the bubble group IDs. All bubbles with the same group
                     # ID are drawn in the same color. If bubble_sizes is specified then
                     # this field must also be specified but may contain blank values.
@@ -76152,7 +159499,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -76213,7 +159560,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -76271,7 +159618,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -76326,7 +159673,7 @@
                 "bubbleMinRadiusSize": 42, # The minimum radius size of the bubbles, in pixels.
                     # If specific, the field must be a positive value.
               },
-              "orgChart": { # An <a href="/chart/interactive/docs/gallery/orgchart">org chart</a>. # An org chart specification.
+              "orgChart": { # An &lt;a href="/chart/interactive/docs/gallery/orgchart"&gt;org chart&lt;/a&gt;. # An org chart specification.
                   # Org charts require a unique set of labels in labels and may
                   # optionally include parent_labels and tooltips.
                   # parent_labels contain, for each node, the label identifying the parent
@@ -76345,7 +159692,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -76406,7 +159753,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -76528,14 +159875,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -76565,11 +159912,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -76599,7 +159946,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -76721,14 +160068,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -76758,11 +160105,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -76785,11 +160132,2986 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
+                "nodeColorStyle": { # A color value. # The color of the org chart nodes.
+                    # If node_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "selectedNodeColorStyle": { # A color value. # The color of the selected org chart nodes.
+                    # If selected_node_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "nodeSize": "A String", # The size of the org chart nodes.
               },
             },
           },
         ],
+        "filterViews": [ # The filter views in this sheet.
+          { # A filter view.
+            "title": "A String", # The name of the filter view.
+            "namedRangeId": "A String", # The named range this filter view is backed by, if any.
+                #
+                # When writing, only one of range or named_range_id
+                # may be set.
+            "filterViewId": 42, # The ID of the filter view.
+            "range": { # A range on a sheet. # The range this filter view covers.
+                #
+                # When writing, only one of range or named_range_id
+                # may be set.
+                # All indexes are zero-based.
+                # Indexes are half open, e.g the start index is inclusive
+                # and the end index is exclusive -- [start_index, end_index).
+                # Missing indexes indicate the range is unbounded on that side.
+                #
+                # For example, if `"Sheet1"` is sheet ID 0, then:
+                #
+                #   `Sheet1!A1:A1 == sheet_id: 0,
+                #                   start_row_index: 0, end_row_index: 1,
+                #                   start_column_index: 0, end_column_index: 1`
+                #
+                #   `Sheet1!A3:B4 == sheet_id: 0,
+                #                   start_row_index: 2, end_row_index: 4,
+                #                   start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A:B == sheet_id: 0,
+                #                 start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A5:B == sheet_id: 0,
+                #                  start_row_index: 4,
+                #                  start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1 == sheet_id:0`
+                #
+                # The start index must always be less than or equal to the end index.
+                # If the start index equals the end index, then the range is empty.
+                # Empty ranges are typically not meaningful and are usually rendered in the
+                # UI as `#REF!`.
+              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "sheetId": 42, # The sheet this range is on.
+              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            },
+            "sortSpecs": [ # The sort order per column. Later specifications are used when values
+                # are equal in the earlier specifications.
+              { # A sort order associated with a specific column or row.
+                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to sort by; cells with this foreground color are
+                    # sorted to the top. Mutually exclusive with background_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to sort by; cells with this fill color are sorted
+                    # to the top. Mutually exclusive with foreground_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "foregroundColorStyle": { # A color value. # The foreground color to sort by; cells with this foreground color are
+                    # sorted to the top. Mutually exclusive with background_color, and must
+                    # be an RGB-type color. If foreground_color is also set, this field takes
+                    # precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "backgroundColorStyle": { # A color value. # The background fill color to sort by; cells with this fill color are sorted
+                    # to the top. Mutually exclusive with foreground_color, and must be an
+                    # RGB-type color. If background_color is also set, this field takes
+                    # precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "sortOrder": "A String", # The order data should be sorted.
+                "dimensionIndex": 42, # The dimension the sort should be applied to.
+              },
+            ],
+            "criteria": { # The criteria for showing/hiding values per column.
+                # The map's key is the column index, and the value is the criteria for
+                # that column.
+              "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
+                "visibleBackgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to filter by; only cells with this fill color are
+                    # shown. Mutually exclusive with visible_foreground_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "hiddenValues": [ # Values that should be hidden.
+                  "A String",
+                ],
+                "visibleBackgroundColorStyle": { # A color value. # The background fill color to filter by; only cells with this fill color are
+                    # shown. This field is mutually exclusive with visible_foreground_color,
+                    # and must be set to an RGB-type color. If visible_background_color is
+                    # also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColorStyle": { # A color value. # The foreground color to filter by; only cells with this foreground color
+                    # are shown. This field is mutually exclusive with
+                    # visible_background_color, and must be set to an RGB-type color. If
+                    # visible_foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to filter by; only cells with this foreground color
+                    # are shown. Mutually exclusive with visible_background_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
+                    # (This does not override hidden_values -- if a value is listed there,
+                    #  it will still be hidden.)
+                    # BooleanConditions are used by conditional formatting,
+                    # data validation, and the criteria in filters.
+                  "values": [ # The values of the condition. The number of supported values depends
+                      # on the condition type.  Some support zero values,
+                      # others one or two values,
+                      # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                    { # The value of the condition.
+                      "relativeDate": "A String", # A relative date (based on the current date).
+                          # Valid only if the type is
+                          # DATE_BEFORE,
+                          # DATE_AFTER,
+                          # DATE_ON_OR_BEFORE or
+                          # DATE_ON_OR_AFTER.
+                          #
+                          # Relative dates are not supported in data validation.
+                          # They are supported only in conditional formatting and
+                          # conditional filters.
+                      "userEnteredValue": "A String", # A value the condition is based on.
+                          # The value is parsed as if the user typed into a cell.
+                          # Formulas are supported (and must begin with an `=` or a '+').
+                    },
+                  ],
+                  "type": "A String", # The type of condition.
+                },
+              },
+            },
+          },
+        ],
+        "slicers": [ # The slicers on this sheet.
+          { # A slicer in a sheet.
+            "position": { # The position of an embedded object such as a chart. # The position of the slicer. Note that slicer can be positioned only on
+                # existing sheet. Also, width and height of slicer can be automatically
+                # adjusted to keep it within permitted limits.
+              "newSheet": True or False, # If true, the embedded object is put on a new sheet whose ID
+                  # is chosen for you. Used only when writing.
+              "sheetId": 42, # The sheet this is on. Set only if the embedded object
+                  # is on its own sheet. Must be non-negative.
+              "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid.
+                "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to.
+                    # All indexes are zero-based.
+                  "rowIndex": 42, # The row index of the coordinate.
+                  "columnIndex": 42, # The column index of the coordinate.
+                  "sheetId": 42, # The sheet this coordinate is on.
+                },
+                "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
+                    # from the anchor cell.
+                "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
+                "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
+                    # from the anchor cell.
+                "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
+              },
+            },
+            "spec": { # The specifications of a slicer. # The specification of the slicer.
+              "backgroundColorStyle": { # A color value. # The background color of the slicer.
+                  # If background_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "dataRange": { # A range on a sheet. # The data range of the slicer.
+                  # All indexes are zero-based.
+                  # Indexes are half open, e.g the start index is inclusive
+                  # and the end index is exclusive -- [start_index, end_index).
+                  # Missing indexes indicate the range is unbounded on that side.
+                  #
+                  # For example, if `"Sheet1"` is sheet ID 0, then:
+                  #
+                  #   `Sheet1!A1:A1 == sheet_id: 0,
+                  #                   start_row_index: 0, end_row_index: 1,
+                  #                   start_column_index: 0, end_column_index: 1`
+                  #
+                  #   `Sheet1!A3:B4 == sheet_id: 0,
+                  #                   start_row_index: 2, end_row_index: 4,
+                  #                   start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1!A:B == sheet_id: 0,
+                  #                 start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1!A5:B == sheet_id: 0,
+                  #                  start_row_index: 4,
+                  #                  start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1 == sheet_id:0`
+                  #
+                  # The start index must always be less than or equal to the end index.
+                  # If the start index equals the end index, then the range is empty.
+                  # Empty ranges are typically not meaningful and are usually rendered in the
+                  # UI as `#REF!`.
+                "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "sheetId": 42, # The sheet this range is on.
+                "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              },
+              "title": "A String", # The title of the slicer.
+              "applyToPivotTables": True or False, # True if the filter should apply to pivot tables.
+                  # If not set, default to `True`.
+              "columnIndex": 42, # The column index in the data table on which the filter is applied to.
+              "horizontalAlignment": "A String", # The horizontal alignment of title in the slicer.
+                  # If unspecified, defaults to `LEFT`
+              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the slicer.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "textFormat": { # The format of a run of text in a cell. # The text format of title in the slicer.
+                  # Absent values indicate that the field isn't specified.
+                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "bold": True or False, # True if the text is bold.
+                "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                    # If foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "strikethrough": True or False, # True if the text has a strikethrough.
+                "fontFamily": "A String", # The font family.
+                "fontSize": 42, # The size of the font.
+                "italic": True or False, # True if the text is italicized.
+                "underline": True or False, # True if the text is underlined.
+              },
+              "filterCriteria": { # Criteria for showing/hiding rows in a filter or filter view. # The filtering criteria of the slicer.
+                "visibleBackgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to filter by; only cells with this fill color are
+                    # shown. Mutually exclusive with visible_foreground_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "hiddenValues": [ # Values that should be hidden.
+                  "A String",
+                ],
+                "visibleBackgroundColorStyle": { # A color value. # The background fill color to filter by; only cells with this fill color are
+                    # shown. This field is mutually exclusive with visible_foreground_color,
+                    # and must be set to an RGB-type color. If visible_background_color is
+                    # also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColorStyle": { # A color value. # The foreground color to filter by; only cells with this foreground color
+                    # are shown. This field is mutually exclusive with
+                    # visible_background_color, and must be set to an RGB-type color. If
+                    # visible_foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to filter by; only cells with this foreground color
+                    # are shown. Mutually exclusive with visible_background_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
+                    # (This does not override hidden_values -- if a value is listed there,
+                    #  it will still be hidden.)
+                    # BooleanConditions are used by conditional formatting,
+                    # data validation, and the criteria in filters.
+                  "values": [ # The values of the condition. The number of supported values depends
+                      # on the condition type.  Some support zero values,
+                      # others one or two values,
+                      # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                    { # The value of the condition.
+                      "relativeDate": "A String", # A relative date (based on the current date).
+                          # Valid only if the type is
+                          # DATE_BEFORE,
+                          # DATE_AFTER,
+                          # DATE_ON_OR_BEFORE or
+                          # DATE_ON_OR_AFTER.
+                          #
+                          # Relative dates are not supported in data validation.
+                          # They are supported only in conditional formatting and
+                          # conditional filters.
+                      "userEnteredValue": "A String", # A value the condition is based on.
+                          # The value is parsed as if the user typed into a cell.
+                          # Formulas are supported (and must begin with an `=` or a '+').
+                    },
+                  ],
+                  "type": "A String", # The type of condition.
+                },
+              },
+            },
+            "slicerId": 42, # The ID of the slicer.
+          },
+        ],
+        "properties": { # Properties of a sheet. # The properties of the sheet.
+          "sheetType": "A String", # The type of sheet. Defaults to GRID.
+              # This field cannot be changed once set.
+          "index": 42, # The index of the sheet within the spreadsheet.
+              # When adding or updating sheet properties, if this field
+              # is excluded then the sheet is added or moved to the end
+              # of the sheet list. When updating sheet indices or inserting
+              # sheets, movement is considered in "before the move" indexes.
+              # For example, if there were 3 sheets (S1, S2, S3) in order to
+              # move S1 ahead of S2 the index would have to be set to 2. A sheet
+              # index update request is ignored if the requested index is
+              # identical to the sheets current index or if the requested new
+              # index is equal to the current sheet index + 1.
+          "title": "A String", # The name of the sheet.
+          "gridProperties": { # Properties of a grid. # Additional properties of the sheet if this sheet is a grid.
+              # (If the sheet is an object sheet, containing a chart or image, then
+              # this field will be absent.)
+              # When writing it is an error to set any grid properties on non-grid sheets.
+            "columnCount": 42, # The number of columns in the grid.
+            "rowGroupControlAfter": True or False, # True if the row grouping control toggle is shown after the group.
+            "columnGroupControlAfter": True or False, # True if the column grouping control toggle is shown after the group.
+            "frozenRowCount": 42, # The number of rows that are frozen in the grid.
+            "frozenColumnCount": 42, # The number of columns that are frozen in the grid.
+            "rowCount": 42, # The number of rows in the grid.
+            "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI.
+          },
+          "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet.
+          "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI.
+              # for simplicity of conversion to/from color representations in various
+              # languages over compactness; for example, the fields of this representation
+              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+              # method in iOS; and, with just a little work, it can be easily formatted into
+              # a CSS "rgba()" string in JavaScript, as well.
+              #
+              # Note: this proto does not carry information about the absolute color space
+              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+              # space.
+              #
+              # Example (Java):
+              #
+              #      import com.google.type.Color;
+              #
+              #      // ...
+              #      public static java.awt.Color fromProto(Color protocolor) {
+              #        float alpha = protocolor.hasAlpha()
+              #            ? protocolor.getAlpha().getValue()
+              #            : 1.0;
+              #
+              #        return new java.awt.Color(
+              #            protocolor.getRed(),
+              #            protocolor.getGreen(),
+              #            protocolor.getBlue(),
+              #            alpha);
+              #      }
+              #
+              #      public static Color toProto(java.awt.Color color) {
+              #        float red = (float) color.getRed();
+              #        float green = (float) color.getGreen();
+              #        float blue = (float) color.getBlue();
+              #        float denominator = 255.0;
+              #        Color.Builder resultBuilder =
+              #            Color
+              #                .newBuilder()
+              #                .setRed(red / denominator)
+              #                .setGreen(green / denominator)
+              #                .setBlue(blue / denominator);
+              #        int alpha = color.getAlpha();
+              #        if (alpha != 255) {
+              #          result.setAlpha(
+              #              FloatValue
+              #                  .newBuilder()
+              #                  .setValue(((float) alpha) / denominator)
+              #                  .build());
+              #        }
+              #        return resultBuilder.build();
+              #      }
+              #      // ...
+              #
+              # Example (iOS / Obj-C):
+              #
+              #      // ...
+              #      static UIColor* fromProto(Color* protocolor) {
+              #         float red = [protocolor red];
+              #         float green = [protocolor green];
+              #         float blue = [protocolor blue];
+              #         FloatValue* alpha_wrapper = [protocolor alpha];
+              #         float alpha = 1.0;
+              #         if (alpha_wrapper != nil) {
+              #           alpha = [alpha_wrapper value];
+              #         }
+              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+              #      }
+              #
+              #      static Color* toProto(UIColor* color) {
+              #          CGFloat red, green, blue, alpha;
+              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+              #            return nil;
+              #          }
+              #          Color* result = [[Color alloc] init];
+              #          [result setRed:red];
+              #          [result setGreen:green];
+              #          [result setBlue:blue];
+              #          if (alpha &lt;= 0.9999) {
+              #            [result setAlpha:floatWrapperWithValue(alpha)];
+              #          }
+              #          [result autorelease];
+              #          return result;
+              #     }
+              #     // ...
+              #
+              #  Example (JavaScript):
+              #
+              #     // ...
+              #
+              #     var protoToCssColor = function(rgb_color) {
+              #        var redFrac = rgb_color.red || 0.0;
+              #        var greenFrac = rgb_color.green || 0.0;
+              #        var blueFrac = rgb_color.blue || 0.0;
+              #        var red = Math.floor(redFrac * 255);
+              #        var green = Math.floor(greenFrac * 255);
+              #        var blue = Math.floor(blueFrac * 255);
+              #
+              #        if (!('alpha' in rgb_color)) {
+              #           return rgbToCssColor_(red, green, blue);
+              #        }
+              #
+              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+              #        var rgbParams = [red, green, blue].join(',');
+              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+              #     };
+              #
+              #     var rgbToCssColor_ = function(red, green, blue) {
+              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+              #       var hexString = rgbNumber.toString(16);
+              #       var missingZeros = 6 - hexString.length;
+              #       var resultBuilder = ['#'];
+              #       for (var i = 0; i &lt; missingZeros; i++) {
+              #          resultBuilder.push('0');
+              #       }
+              #       resultBuilder.push(hexString);
+              #       return resultBuilder.join('');
+              #     };
+              #
+              #     // ...
+            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                # the final pixel color is defined by the equation:
+                #
+                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                #
+                # This means that a value of 1.0 corresponds to a solid color, whereas
+                # a value of 0.0 corresponds to a completely transparent color. This
+                # uses a wrapper message rather than a simple float scalar so that it is
+                # possible to distinguish between a default value and the value being unset.
+                # If omitted, this color object is to be rendered as a solid color
+                # (as if the alpha value had been explicitly given with a value of 1.0).
+            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+          },
+          "hidden": True or False, # True if the sheet is hidden in the UI, false if it's visible.
+          "tabColorStyle": { # A color value. # The color of the tab in the UI.
+              # If tab_color is also set, this field takes precedence.
+            "themeColor": "A String", # Theme color.
+            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
+          },
+          "sheetId": 42, # The ID of the sheet. Must be non-negative.
+              # This field cannot be changed once set.
+        },
         "protectedRanges": [ # The protected ranges in this sheet.
           { # A protected range.
             "unprotectedRanges": [ # The list of unprotected ranges within a protected sheet.
@@ -76838,6 +163160,21 @@
                 #
                 # When writing, only one of range or named_range_id
                 # may be set.
+            "protectedRangeId": 42, # The ID of the protected range.
+                # This field is read-only.
+            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
+                # This field is only visible to users with edit access to the protected
+                # range and the document.
+                # Editors are not supported with warning_only protection.
+              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
+                  # range.  Domain protection is only supported on documents within a domain.
+              "users": [ # The email addresses of users with edit access to the protected range.
+                "A String",
+              ],
+              "groups": [ # The email addresses of groups with edit access to the protected range.
+                "A String",
+              ],
+            },
             "range": { # A range on a sheet. # The range that is being protected.
                 # The range may be fully unbounded, in which case this is considered
                 # a protected sheet.
@@ -76878,21 +163215,6 @@
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
               "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
-            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
-                # This field is only visible to users with edit access to the protected
-                # range and the document.
-                # Editors are not supported with warning_only protection.
-              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
-                  # range.  Domain protection is only supported on documents within a domain.
-              "users": [ # The email addresses of users with edit access to the protected range.
-                "A String",
-              ],
-              "groups": [ # The email addresses of groups with edit access to the protected range.
-                "A String",
-              ],
-            },
-            "protectedRangeId": 42, # The ID of the protected range.
-                # This field is read-only.
             "warningOnly": True or False, # True if this protected range will show a warning when editing.
                 # Warning-based protection means that every user can edit data in the
                 # protected range, except editing will prompt a warning asking the user
@@ -76905,6 +163227,7 @@
           },
         ],
         "data": [ # Data in the grid, if this is a grid sheet.
+            #
             # The number of GridData objects returned is dependent on the number of
             # ranges requested on this sheet. For example, if this is representing
             # `Sheet1`, and the spreadsheet was requested with ranges
@@ -76944,8 +163267,8 @@
                         "sheetId": 42, # The sheet this span is on.
                         "dimension": "A String", # The dimension of the span.
                       },
-                      "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                       "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+                      "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                     },
                     "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
                         # specified.
@@ -76990,8 +163313,8 @@
                         "sheetId": 42, # The sheet this span is on.
                         "dimension": "A String", # The dimension of the span.
                       },
-                      "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                       "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+                      "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                     },
                     "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
                         # specified.
@@ -77062,15 +163385,15 @@
                               "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                   # (Note that formulaValue is not valid,
                                   #  because the values will be calculated.)
-                                "numberValue": 3.14, # Represents a double value.
-                                    # Note: Dates, Times and DateTimes are represented as doubles in
-                                    # "serial number" format.
-                                "boolValue": True or False, # Represents a boolean value.
-                                "formulaValue": "A String", # Represents a formula.
                                 "stringValue": "A String", # Represents a string value.
                                     # Leading single quotes are not included. For example, if the user typed
                                     # `'123` into the UI, this would be represented as a `stringValue` of
                                     # `"123"`.
+                                "boolValue": True or False, # Represents a boolean value.
+                                "numberValue": 3.14, # Represents a double value.
+                                    # Note: Dates, Times and DateTimes are represented as doubles in
+                                    # "serial number" format.
+                                "formulaValue": "A String", # Represents a formula.
                                 "errorValue": { # An error in a cell. # Represents an error.
                                     # This field is read-only.
                                   "message": "A String", # A message with more information about the error
@@ -77084,7 +163407,7 @@
                               # If not specified, sorting is alphabetical by this group's values.
                             "buckets": [ # Determines the bucket from which values are chosen to sort.
                                 #
-                                # For example, in a pivot table with one row group & two column groups,
+                                # For example, in a pivot table with one row group &amp; two column groups,
                                 # the row group can list up to two values. The first value corresponds
                                 # to a value within the first column group, and the second value
                                 # corresponds to a value in the second column group.  If no values
@@ -77092,15 +163415,15 @@
                                 # to the "Grand Total" over the column groups. If a single value is listed,
                                 # this would correspond to using the "Total" of that bucket.
                               { # The kinds of value that a cell in a spreadsheet can have.
-                                "numberValue": 3.14, # Represents a double value.
-                                    # Note: Dates, Times and DateTimes are represented as doubles in
-                                    # "serial number" format.
-                                "boolValue": True or False, # Represents a boolean value.
-                                "formulaValue": "A String", # Represents a formula.
                                 "stringValue": "A String", # Represents a string value.
                                     # Leading single quotes are not included. For example, if the user typed
                                     # `'123` into the UI, this would be represented as a `stringValue` of
                                     # `"123"`.
+                                "boolValue": True or False, # Represents a boolean value.
+                                "numberValue": 3.14, # Represents a double value.
+                                    # Note: Dates, Times and DateTimes are represented as doubles in
+                                    # "serial number" format.
+                                "formulaValue": "A String", # Represents a formula.
                                 "errorValue": { # An error in a cell. # Represents an error.
                                     # This field is read-only.
                                   "message": "A String", # A message with more information about the error
@@ -77113,6 +163436,11 @@
                                 # grouping should be sorted by.
                           },
                           "sortOrder": "A String", # The order the values in this group should be sorted.
+                          "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
+                              #
+                              # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                              # means this group refers to column `C`, whereas the offset `1` would
+                              # refer to column `D`.
                           "groupRule": { # An optional setting on a PivotGroup that defines buckets for the values # The group rule to apply to this row/column group.
                               # in the source data column rather than breaking out each individual value.
                               # Only one PivotGroup with a group rule may be added for each column in
@@ -77145,10 +163473,10 @@
                                 #     +-------------+-------------------+
                                 #     | Grouped Age | AVERAGE of Amount |
                                 #     +-------------+-------------------+
-                                #     | < 25        |            $19.34 |
+                                #     | &lt; 25        |            $19.34 |
                                 #     | 25-45       |            $31.43 |
                                 #     | 45-65       |            $35.87 |
-                                #     | > 65        |            $27.55 |
+                                #     | &gt; 65        |            $27.55 |
                                 #     +-------------+-------------------+
                                 #     | Grand Total |            $29.12 |
                                 #     +-------------+-------------------+
@@ -77195,15 +163523,15 @@
                                       # group within a given ManualRule. Items that do not appear in any
                                       # group will appear on their own.
                                     { # The kinds of value that a cell in a spreadsheet can have.
-                                      "numberValue": 3.14, # Represents a double value.
-                                          # Note: Dates, Times and DateTimes are represented as doubles in
-                                          # "serial number" format.
-                                      "boolValue": True or False, # Represents a boolean value.
-                                      "formulaValue": "A String", # Represents a formula.
                                       "stringValue": "A String", # Represents a string value.
                                           # Leading single quotes are not included. For example, if the user typed
                                           # `'123` into the UI, this would be represented as a `stringValue` of
                                           # `"123"`.
+                                      "boolValue": True or False, # Represents a boolean value.
+                                      "numberValue": 3.14, # Represents a double value.
+                                          # Note: Dates, Times and DateTimes are represented as doubles in
+                                          # "serial number" format.
+                                      "formulaValue": "A String", # Represents a formula.
                                       "errorValue": { # An error in a cell. # Represents an error.
                                           # This field is read-only.
                                         "message": "A String", # A message with more information about the error
@@ -77214,15 +163542,15 @@
                                   ],
                                   "groupName": { # The kinds of value that a cell in a spreadsheet can have. # The group name, which must be a string. Each group in a given
                                       # ManualRule must have a unique group name.
-                                    "numberValue": 3.14, # Represents a double value.
-                                        # Note: Dates, Times and DateTimes are represented as doubles in
-                                        # "serial number" format.
-                                    "boolValue": True or False, # Represents a boolean value.
-                                    "formulaValue": "A String", # Represents a formula.
                                     "stringValue": "A String", # Represents a string value.
                                         # Leading single quotes are not included. For example, if the user typed
                                         # `'123` into the UI, this would be represented as a `stringValue` of
                                         # `"123"`.
+                                    "boolValue": True or False, # Represents a boolean value.
+                                    "numberValue": 3.14, # Represents a double value.
+                                        # Note: Dates, Times and DateTimes are represented as doubles in
+                                        # "serial number" format.
+                                    "formulaValue": "A String", # Represents a formula.
                                     "errorValue": { # An error in a cell. # Represents an error.
                                         # This field is read-only.
                                       "message": "A String", # A message with more information about the error
@@ -77259,11 +163587,6 @@
                               "type": "A String", # The type of date-time grouping to apply.
                             },
                           },
-                          "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
-                              #
-                              # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                              # means this group refers to column `C`, whereas the offset `1` would refer
-                              # to column `D`.
                         },
                       ],
                       "source": { # A range on a sheet. # The range the pivot table is reading data from.
@@ -77305,18 +163628,18 @@
                         { # The definition of how a value in a pivot table should be calculated.
                           "formula": "A String", # A custom formula to calculate the value.  The formula must start
                               # with an `=` character.
-                          "name": "A String", # A name to use for the value.
-                          "sourceColumnOffset": 42, # The column offset of the source range that this value reads from.
-                              #
-                              # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                              # means this value refers to column `C`, whereas the offset `1` would
-                              # refer to column `D`.
                           "summarizeFunction": "A String", # A function to summarize the value.
                               # If formula is set, the only supported values are
                               # SUM and
                               # CUSTOM.
                               # If sourceColumnOffset is set, then `CUSTOM`
                               # is not supported.
+                          "name": "A String", # A name to use for the value.
+                          "sourceColumnOffset": 42, # The column offset of the source range that this value reads from.
+                              #
+                              # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                              # means this value refers to column `C`, whereas the offset `1` would
+                              # refer to column `D`.
                           "calculatedDisplayType": "A String", # If specified, indicates that pivot values should be displayed as
                               # the result of a calculation with another pivot value. For example, if
                               # calculated_display_type is specified as PERCENT_OF_GRAND_TOTAL, all the
@@ -77382,15 +163705,15 @@
                               "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                   # (Note that formulaValue is not valid,
                                   #  because the values will be calculated.)
-                                "numberValue": 3.14, # Represents a double value.
-                                    # Note: Dates, Times and DateTimes are represented as doubles in
-                                    # "serial number" format.
-                                "boolValue": True or False, # Represents a boolean value.
-                                "formulaValue": "A String", # Represents a formula.
                                 "stringValue": "A String", # Represents a string value.
                                     # Leading single quotes are not included. For example, if the user typed
                                     # `'123` into the UI, this would be represented as a `stringValue` of
                                     # `"123"`.
+                                "boolValue": True or False, # Represents a boolean value.
+                                "numberValue": 3.14, # Represents a double value.
+                                    # Note: Dates, Times and DateTimes are represented as doubles in
+                                    # "serial number" format.
+                                "formulaValue": "A String", # Represents a formula.
                                 "errorValue": { # An error in a cell. # Represents an error.
                                     # This field is read-only.
                                   "message": "A String", # A message with more information about the error
@@ -77404,7 +163727,7 @@
                               # If not specified, sorting is alphabetical by this group's values.
                             "buckets": [ # Determines the bucket from which values are chosen to sort.
                                 #
-                                # For example, in a pivot table with one row group & two column groups,
+                                # For example, in a pivot table with one row group &amp; two column groups,
                                 # the row group can list up to two values. The first value corresponds
                                 # to a value within the first column group, and the second value
                                 # corresponds to a value in the second column group.  If no values
@@ -77412,15 +163735,15 @@
                                 # to the "Grand Total" over the column groups. If a single value is listed,
                                 # this would correspond to using the "Total" of that bucket.
                               { # The kinds of value that a cell in a spreadsheet can have.
-                                "numberValue": 3.14, # Represents a double value.
-                                    # Note: Dates, Times and DateTimes are represented as doubles in
-                                    # "serial number" format.
-                                "boolValue": True or False, # Represents a boolean value.
-                                "formulaValue": "A String", # Represents a formula.
                                 "stringValue": "A String", # Represents a string value.
                                     # Leading single quotes are not included. For example, if the user typed
                                     # `'123` into the UI, this would be represented as a `stringValue` of
                                     # `"123"`.
+                                "boolValue": True or False, # Represents a boolean value.
+                                "numberValue": 3.14, # Represents a double value.
+                                    # Note: Dates, Times and DateTimes are represented as doubles in
+                                    # "serial number" format.
+                                "formulaValue": "A String", # Represents a formula.
                                 "errorValue": { # An error in a cell. # Represents an error.
                                     # This field is read-only.
                                   "message": "A String", # A message with more information about the error
@@ -77433,6 +163756,11 @@
                                 # grouping should be sorted by.
                           },
                           "sortOrder": "A String", # The order the values in this group should be sorted.
+                          "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
+                              #
+                              # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                              # means this group refers to column `C`, whereas the offset `1` would
+                              # refer to column `D`.
                           "groupRule": { # An optional setting on a PivotGroup that defines buckets for the values # The group rule to apply to this row/column group.
                               # in the source data column rather than breaking out each individual value.
                               # Only one PivotGroup with a group rule may be added for each column in
@@ -77465,10 +163793,10 @@
                                 #     +-------------+-------------------+
                                 #     | Grouped Age | AVERAGE of Amount |
                                 #     +-------------+-------------------+
-                                #     | < 25        |            $19.34 |
+                                #     | &lt; 25        |            $19.34 |
                                 #     | 25-45       |            $31.43 |
                                 #     | 45-65       |            $35.87 |
-                                #     | > 65        |            $27.55 |
+                                #     | &gt; 65        |            $27.55 |
                                 #     +-------------+-------------------+
                                 #     | Grand Total |            $29.12 |
                                 #     +-------------+-------------------+
@@ -77515,15 +163843,15 @@
                                       # group within a given ManualRule. Items that do not appear in any
                                       # group will appear on their own.
                                     { # The kinds of value that a cell in a spreadsheet can have.
-                                      "numberValue": 3.14, # Represents a double value.
-                                          # Note: Dates, Times and DateTimes are represented as doubles in
-                                          # "serial number" format.
-                                      "boolValue": True or False, # Represents a boolean value.
-                                      "formulaValue": "A String", # Represents a formula.
                                       "stringValue": "A String", # Represents a string value.
                                           # Leading single quotes are not included. For example, if the user typed
                                           # `'123` into the UI, this would be represented as a `stringValue` of
                                           # `"123"`.
+                                      "boolValue": True or False, # Represents a boolean value.
+                                      "numberValue": 3.14, # Represents a double value.
+                                          # Note: Dates, Times and DateTimes are represented as doubles in
+                                          # "serial number" format.
+                                      "formulaValue": "A String", # Represents a formula.
                                       "errorValue": { # An error in a cell. # Represents an error.
                                           # This field is read-only.
                                         "message": "A String", # A message with more information about the error
@@ -77534,15 +163862,15 @@
                                   ],
                                   "groupName": { # The kinds of value that a cell in a spreadsheet can have. # The group name, which must be a string. Each group in a given
                                       # ManualRule must have a unique group name.
-                                    "numberValue": 3.14, # Represents a double value.
-                                        # Note: Dates, Times and DateTimes are represented as doubles in
-                                        # "serial number" format.
-                                    "boolValue": True or False, # Represents a boolean value.
-                                    "formulaValue": "A String", # Represents a formula.
                                     "stringValue": "A String", # Represents a string value.
                                         # Leading single quotes are not included. For example, if the user typed
                                         # `'123` into the UI, this would be represented as a `stringValue` of
                                         # `"123"`.
+                                    "boolValue": True or False, # Represents a boolean value.
+                                    "numberValue": 3.14, # Represents a double value.
+                                        # Note: Dates, Times and DateTimes are represented as doubles in
+                                        # "serial number" format.
+                                    "formulaValue": "A String", # Represents a formula.
                                     "errorValue": { # An error in a cell. # Represents an error.
                                         # This field is read-only.
                                       "message": "A String", # A message with more information about the error
@@ -77579,11 +163907,6 @@
                               "type": "A String", # The type of date-time grouping to apply.
                             },
                           },
-                          "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
-                              #
-                              # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                              # means this group refers to column `C`, whereas the offset `1` would refer
-                              # to column `D`.
                         },
                       ],
                     },
@@ -77595,15 +163918,15 @@
                         # the calculated value.  For cells with literals, this is
                         # the same as the user_entered_value.
                         # This field is read-only.
-                      "numberValue": 3.14, # Represents a double value.
-                          # Note: Dates, Times and DateTimes are represented as doubles in
-                          # "serial number" format.
-                      "boolValue": True or False, # Represents a boolean value.
-                      "formulaValue": "A String", # Represents a formula.
                       "stringValue": "A String", # Represents a string value.
                           # Leading single quotes are not included. For example, if the user typed
                           # `'123` into the UI, this would be represented as a `stringValue` of
                           # `"123"`.
+                      "boolValue": True or False, # Represents a boolean value.
+                      "numberValue": 3.14, # Represents a double value.
+                          # Note: Dates, Times and DateTimes are represented as doubles in
+                          # "serial number" format.
+                      "formulaValue": "A String", # Represents a formula.
                       "errorValue": { # An error in a cell. # Represents an error.
                           # This field is read-only.
                         "message": "A String", # A message with more information about the error
@@ -77617,15 +163940,15 @@
                     "userEnteredValue": { # The kinds of value that a cell in a spreadsheet can have. # The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()`
                         # Note: Dates, Times and DateTimes are represented as doubles in
                         # serial number format.
-                      "numberValue": 3.14, # Represents a double value.
-                          # Note: Dates, Times and DateTimes are represented as doubles in
-                          # "serial number" format.
-                      "boolValue": True or False, # Represents a boolean value.
-                      "formulaValue": "A String", # Represents a formula.
                       "stringValue": "A String", # Represents a string value.
                           # Leading single quotes are not included. For example, if the user typed
                           # `'123` into the UI, this would be represented as a `stringValue` of
                           # `"123"`.
+                      "boolValue": True or False, # Represents a boolean value.
+                      "numberValue": 3.14, # Represents a double value.
+                          # Note: Dates, Times and DateTimes are represented as doubles in
+                          # "serial number" format.
+                      "formulaValue": "A String", # Represents a formula.
                       "errorValue": { # An error in a cell. # Represents an error.
                           # This field is read-only.
                         "message": "A String", # A message with more information about the error
@@ -77640,6 +163963,13 @@
                         # If the effective format is the default format, effective format will
                         # not be written.
                         # This field is read-only.
+                      "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                          # When updating padding, every field must be specified.
+                        "top": 42, # The top padding of the cell.
+                        "left": 42, # The left padding of the cell.
+                        "right": 42, # The right padding of the cell.
+                        "bottom": 42, # The bottom padding of the cell.
+                      },
                       "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                         "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                             # the user's locale will be used if necessary for the given type.
@@ -77649,12 +163979,143 @@
                             # When writing, this field must be set.
                       },
                       "textDirection": "A String", # The direction of the text in the cell.
-                      "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                          # When updating padding, every field must be specified.
-                        "top": 42, # The top padding of the cell.
-                        "left": 42, # The left padding of the cell.
-                        "right": 42, # The right padding of the cell.
-                        "bottom": 42, # The bottom padding of the cell.
+                      "backgroundColorStyle": { # A color value. # The background color of the cell.
+                          # If background_color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
                       },
                       "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                       "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -77727,14 +164188,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -77764,11 +164225,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -77864,14 +164325,14 @@
                               #
                               #      static Color* toProto(UIColor* color) {
                               #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                               #            return nil;
                               #          }
                               #          Color* result = [[Color alloc] init];
                               #          [result setRed:red];
                               #          [result setGreen:green];
                               #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
+                              #          if (alpha &lt;= 0.9999) {
                               #            [result setAlpha:floatWrapperWithValue(alpha)];
                               #          }
                               #          [result autorelease];
@@ -77901,11 +164362,11 @@
                               #     };
                               #
                               #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                               #       var hexString = rgbNumber.toString(16);
                               #       var missingZeros = 6 - hexString.length;
                               #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
                               #          resultBuilder.push('0');
                               #       }
                               #       resultBuilder.push(hexString);
@@ -77930,284 +164391,144 @@
                           },
                           "width": 42, # The width of the border, in pixels.
                               # Deprecated; the width is determined by the "style" field.
-                          "style": "A String", # The style of the border.
-                        },
-                        "right": { # A border along a cell. # The right border of the cell.
-                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                              # for simplicity of conversion to/from color representations in various
-                              # languages over compactness; for example, the fields of this representation
-                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                              # method in iOS; and, with just a little work, it can be easily formatted into
-                              # a CSS "rgba()" string in JavaScript, as well.
-                              #
-                              # Note: this proto does not carry information about the absolute color space
-                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                              # space.
-                              #
-                              # Example (Java):
-                              #
-                              #      import com.google.type.Color;
-                              #
-                              #      // ...
-                              #      public static java.awt.Color fromProto(Color protocolor) {
-                              #        float alpha = protocolor.hasAlpha()
-                              #            ? protocolor.getAlpha().getValue()
-                              #            : 1.0;
-                              #
-                              #        return new java.awt.Color(
-                              #            protocolor.getRed(),
-                              #            protocolor.getGreen(),
-                              #            protocolor.getBlue(),
-                              #            alpha);
-                              #      }
-                              #
-                              #      public static Color toProto(java.awt.Color color) {
-                              #        float red = (float) color.getRed();
-                              #        float green = (float) color.getGreen();
-                              #        float blue = (float) color.getBlue();
-                              #        float denominator = 255.0;
-                              #        Color.Builder resultBuilder =
-                              #            Color
-                              #                .newBuilder()
-                              #                .setRed(red / denominator)
-                              #                .setGreen(green / denominator)
-                              #                .setBlue(blue / denominator);
-                              #        int alpha = color.getAlpha();
-                              #        if (alpha != 255) {
-                              #          result.setAlpha(
-                              #              FloatValue
-                              #                  .newBuilder()
-                              #                  .setValue(((float) alpha) / denominator)
-                              #                  .build());
-                              #        }
-                              #        return resultBuilder.build();
-                              #      }
-                              #      // ...
-                              #
-                              # Example (iOS / Obj-C):
-                              #
-                              #      // ...
-                              #      static UIColor* fromProto(Color* protocolor) {
-                              #         float red = [protocolor red];
-                              #         float green = [protocolor green];
-                              #         float blue = [protocolor blue];
-                              #         FloatValue* alpha_wrapper = [protocolor alpha];
-                              #         float alpha = 1.0;
-                              #         if (alpha_wrapper != nil) {
-                              #           alpha = [alpha_wrapper value];
-                              #         }
-                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                              #      }
-                              #
-                              #      static Color* toProto(UIColor* color) {
-                              #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                              #            return nil;
-                              #          }
-                              #          Color* result = [[Color alloc] init];
-                              #          [result setRed:red];
-                              #          [result setGreen:green];
-                              #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
-                              #            [result setAlpha:floatWrapperWithValue(alpha)];
-                              #          }
-                              #          [result autorelease];
-                              #          return result;
-                              #     }
-                              #     // ...
-                              #
-                              #  Example (JavaScript):
-                              #
-                              #     // ...
-                              #
-                              #     var protoToCssColor = function(rgb_color) {
-                              #        var redFrac = rgb_color.red || 0.0;
-                              #        var greenFrac = rgb_color.green || 0.0;
-                              #        var blueFrac = rgb_color.blue || 0.0;
-                              #        var red = Math.floor(redFrac * 255);
-                              #        var green = Math.floor(greenFrac * 255);
-                              #        var blue = Math.floor(blueFrac * 255);
-                              #
-                              #        if (!('alpha' in rgb_color)) {
-                              #           return rgbToCssColor_(red, green, blue);
-                              #        }
-                              #
-                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                              #        var rgbParams = [red, green, blue].join(',');
-                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                              #     };
-                              #
-                              #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                              #       var hexString = rgbNumber.toString(16);
-                              #       var missingZeros = 6 - hexString.length;
-                              #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
-                              #          resultBuilder.push('0');
-                              #       }
-                              #       resultBuilder.push(hexString);
-                              #       return resultBuilder.join('');
-                              #     };
-                              #
-                              #     // ...
-                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                                # the final pixel color is defined by the equation:
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
                                 #
-                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
                                 #
-                                # This means that a value of 1.0 corresponds to a solid color, whereas
-                                # a value of 0.0 corresponds to a completely transparent color. This
-                                # uses a wrapper message rather than a simple float scalar so that it is
-                                # possible to distinguish between a default value and the value being unset.
-                                # If omitted, this color object is to be rendered as a solid color
-                                # (as if the alpha value had been explicitly given with a value of 1.0).
-                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
                           },
-                          "width": 42, # The width of the border, in pixels.
-                              # Deprecated; the width is determined by the "style" field.
-                          "style": "A String", # The style of the border.
-                        },
-                        "bottom": { # A border along a cell. # The bottom border of the cell.
-                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                              # for simplicity of conversion to/from color representations in various
-                              # languages over compactness; for example, the fields of this representation
-                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                              # method in iOS; and, with just a little work, it can be easily formatted into
-                              # a CSS "rgba()" string in JavaScript, as well.
-                              #
-                              # Note: this proto does not carry information about the absolute color space
-                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                              # space.
-                              #
-                              # Example (Java):
-                              #
-                              #      import com.google.type.Color;
-                              #
-                              #      // ...
-                              #      public static java.awt.Color fromProto(Color protocolor) {
-                              #        float alpha = protocolor.hasAlpha()
-                              #            ? protocolor.getAlpha().getValue()
-                              #            : 1.0;
-                              #
-                              #        return new java.awt.Color(
-                              #            protocolor.getRed(),
-                              #            protocolor.getGreen(),
-                              #            protocolor.getBlue(),
-                              #            alpha);
-                              #      }
-                              #
-                              #      public static Color toProto(java.awt.Color color) {
-                              #        float red = (float) color.getRed();
-                              #        float green = (float) color.getGreen();
-                              #        float blue = (float) color.getBlue();
-                              #        float denominator = 255.0;
-                              #        Color.Builder resultBuilder =
-                              #            Color
-                              #                .newBuilder()
-                              #                .setRed(red / denominator)
-                              #                .setGreen(green / denominator)
-                              #                .setBlue(blue / denominator);
-                              #        int alpha = color.getAlpha();
-                              #        if (alpha != 255) {
-                              #          result.setAlpha(
-                              #              FloatValue
-                              #                  .newBuilder()
-                              #                  .setValue(((float) alpha) / denominator)
-                              #                  .build());
-                              #        }
-                              #        return resultBuilder.build();
-                              #      }
-                              #      // ...
-                              #
-                              # Example (iOS / Obj-C):
-                              #
-                              #      // ...
-                              #      static UIColor* fromProto(Color* protocolor) {
-                              #         float red = [protocolor red];
-                              #         float green = [protocolor green];
-                              #         float blue = [protocolor blue];
-                              #         FloatValue* alpha_wrapper = [protocolor alpha];
-                              #         float alpha = 1.0;
-                              #         if (alpha_wrapper != nil) {
-                              #           alpha = [alpha_wrapper value];
-                              #         }
-                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                              #      }
-                              #
-                              #      static Color* toProto(UIColor* color) {
-                              #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                              #            return nil;
-                              #          }
-                              #          Color* result = [[Color alloc] init];
-                              #          [result setRed:red];
-                              #          [result setGreen:green];
-                              #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
-                              #            [result setAlpha:floatWrapperWithValue(alpha)];
-                              #          }
-                              #          [result autorelease];
-                              #          return result;
-                              #     }
-                              #     // ...
-                              #
-                              #  Example (JavaScript):
-                              #
-                              #     // ...
-                              #
-                              #     var protoToCssColor = function(rgb_color) {
-                              #        var redFrac = rgb_color.red || 0.0;
-                              #        var greenFrac = rgb_color.green || 0.0;
-                              #        var blueFrac = rgb_color.blue || 0.0;
-                              #        var red = Math.floor(redFrac * 255);
-                              #        var green = Math.floor(greenFrac * 255);
-                              #        var blue = Math.floor(blueFrac * 255);
-                              #
-                              #        if (!('alpha' in rgb_color)) {
-                              #           return rgbToCssColor_(red, green, blue);
-                              #        }
-                              #
-                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                              #        var rgbParams = [red, green, blue].join(',');
-                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                              #     };
-                              #
-                              #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                              #       var hexString = rgbNumber.toString(16);
-                              #       var missingZeros = 6 - hexString.length;
-                              #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
-                              #          resultBuilder.push('0');
-                              #       }
-                              #       resultBuilder.push(hexString);
-                              #       return resultBuilder.join('');
-                              #     };
-                              #
-                              #     // ...
-                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                                # the final pixel color is defined by the equation:
-                                #
-                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                                #
-                                # This means that a value of 1.0 corresponds to a solid color, whereas
-                                # a value of 0.0 corresponds to a completely transparent color. This
-                                # uses a wrapper message rather than a simple float scalar so that it is
-                                # possible to distinguish between a default value and the value being unset.
-                                # If omitted, this color object is to be rendered as a solid color
-                                # (as if the alpha value had been explicitly given with a value of 1.0).
-                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                          },
-                          "width": 42, # The width of the border, in pixels.
-                              # Deprecated; the width is determined by the "style" field.
                           "style": "A String", # The style of the border.
                         },
                         "left": { # A border along a cell. # The left border of the cell.
@@ -78281,14 +164602,14 @@
                               #
                               #      static Color* toProto(UIColor* color) {
                               #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                               #            return nil;
                               #          }
                               #          Color* result = [[Color alloc] init];
                               #          [result setRed:red];
                               #          [result setGreen:green];
                               #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
+                              #          if (alpha &lt;= 0.9999) {
                               #            [result setAlpha:floatWrapperWithValue(alpha)];
                               #          }
                               #          [result autorelease];
@@ -78318,11 +164639,11 @@
                               #     };
                               #
                               #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                               #       var hexString = rgbNumber.toString(16);
                               #       var missingZeros = 6 - hexString.length;
                               #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
                               #          resultBuilder.push('0');
                               #       }
                               #       resultBuilder.push(hexString);
@@ -78347,6 +164668,698 @@
                           },
                           "width": 42, # The width of the border, in pixels.
                               # Deprecated; the width is determined by the "style" field.
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                          },
+                          "style": "A String", # The style of the border.
+                        },
+                        "right": { # A border along a cell. # The right border of the cell.
+                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                          "width": 42, # The width of the border, in pixels.
+                              # Deprecated; the width is determined by the "style" field.
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                          },
+                          "style": "A String", # The style of the border.
+                        },
+                        "bottom": { # A border along a cell. # The bottom border of the cell.
+                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                          "width": 42, # The width of the border, in pixels.
+                              # Deprecated; the width is determined by the "style" field.
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                          },
                           "style": "A String", # The style of the border.
                         },
                       },
@@ -78444,14 +165457,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -78481,11 +165494,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -78509,6 +165522,144 @@
                           "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                         },
                         "bold": True or False, # True if the text is bold.
+                        "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                            # If foreground_color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
                         "strikethrough": True or False, # True if the text has a strikethrough.
                         "fontFamily": "A String", # The font family.
                         "fontSize": 42, # The size of the font.
@@ -78520,6 +165671,13 @@
                     "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell.
                         #
                         # When writing, the new format will be merged with the existing format.
+                      "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                          # When updating padding, every field must be specified.
+                        "top": 42, # The top padding of the cell.
+                        "left": 42, # The left padding of the cell.
+                        "right": 42, # The right padding of the cell.
+                        "bottom": 42, # The bottom padding of the cell.
+                      },
                       "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                         "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                             # the user's locale will be used if necessary for the given type.
@@ -78529,12 +165687,143 @@
                             # When writing, this field must be set.
                       },
                       "textDirection": "A String", # The direction of the text in the cell.
-                      "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                          # When updating padding, every field must be specified.
-                        "top": 42, # The top padding of the cell.
-                        "left": 42, # The left padding of the cell.
-                        "right": 42, # The right padding of the cell.
-                        "bottom": 42, # The bottom padding of the cell.
+                      "backgroundColorStyle": { # A color value. # The background color of the cell.
+                          # If background_color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
                       },
                       "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                       "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -78607,14 +165896,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -78644,11 +165933,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -78744,14 +166033,14 @@
                               #
                               #      static Color* toProto(UIColor* color) {
                               #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                               #            return nil;
                               #          }
                               #          Color* result = [[Color alloc] init];
                               #          [result setRed:red];
                               #          [result setGreen:green];
                               #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
+                              #          if (alpha &lt;= 0.9999) {
                               #            [result setAlpha:floatWrapperWithValue(alpha)];
                               #          }
                               #          [result autorelease];
@@ -78781,11 +166070,11 @@
                               #     };
                               #
                               #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                               #       var hexString = rgbNumber.toString(16);
                               #       var missingZeros = 6 - hexString.length;
                               #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
                               #          resultBuilder.push('0');
                               #       }
                               #       resultBuilder.push(hexString);
@@ -78810,284 +166099,144 @@
                           },
                           "width": 42, # The width of the border, in pixels.
                               # Deprecated; the width is determined by the "style" field.
-                          "style": "A String", # The style of the border.
-                        },
-                        "right": { # A border along a cell. # The right border of the cell.
-                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                              # for simplicity of conversion to/from color representations in various
-                              # languages over compactness; for example, the fields of this representation
-                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                              # method in iOS; and, with just a little work, it can be easily formatted into
-                              # a CSS "rgba()" string in JavaScript, as well.
-                              #
-                              # Note: this proto does not carry information about the absolute color space
-                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                              # space.
-                              #
-                              # Example (Java):
-                              #
-                              #      import com.google.type.Color;
-                              #
-                              #      // ...
-                              #      public static java.awt.Color fromProto(Color protocolor) {
-                              #        float alpha = protocolor.hasAlpha()
-                              #            ? protocolor.getAlpha().getValue()
-                              #            : 1.0;
-                              #
-                              #        return new java.awt.Color(
-                              #            protocolor.getRed(),
-                              #            protocolor.getGreen(),
-                              #            protocolor.getBlue(),
-                              #            alpha);
-                              #      }
-                              #
-                              #      public static Color toProto(java.awt.Color color) {
-                              #        float red = (float) color.getRed();
-                              #        float green = (float) color.getGreen();
-                              #        float blue = (float) color.getBlue();
-                              #        float denominator = 255.0;
-                              #        Color.Builder resultBuilder =
-                              #            Color
-                              #                .newBuilder()
-                              #                .setRed(red / denominator)
-                              #                .setGreen(green / denominator)
-                              #                .setBlue(blue / denominator);
-                              #        int alpha = color.getAlpha();
-                              #        if (alpha != 255) {
-                              #          result.setAlpha(
-                              #              FloatValue
-                              #                  .newBuilder()
-                              #                  .setValue(((float) alpha) / denominator)
-                              #                  .build());
-                              #        }
-                              #        return resultBuilder.build();
-                              #      }
-                              #      // ...
-                              #
-                              # Example (iOS / Obj-C):
-                              #
-                              #      // ...
-                              #      static UIColor* fromProto(Color* protocolor) {
-                              #         float red = [protocolor red];
-                              #         float green = [protocolor green];
-                              #         float blue = [protocolor blue];
-                              #         FloatValue* alpha_wrapper = [protocolor alpha];
-                              #         float alpha = 1.0;
-                              #         if (alpha_wrapper != nil) {
-                              #           alpha = [alpha_wrapper value];
-                              #         }
-                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                              #      }
-                              #
-                              #      static Color* toProto(UIColor* color) {
-                              #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                              #            return nil;
-                              #          }
-                              #          Color* result = [[Color alloc] init];
-                              #          [result setRed:red];
-                              #          [result setGreen:green];
-                              #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
-                              #            [result setAlpha:floatWrapperWithValue(alpha)];
-                              #          }
-                              #          [result autorelease];
-                              #          return result;
-                              #     }
-                              #     // ...
-                              #
-                              #  Example (JavaScript):
-                              #
-                              #     // ...
-                              #
-                              #     var protoToCssColor = function(rgb_color) {
-                              #        var redFrac = rgb_color.red || 0.0;
-                              #        var greenFrac = rgb_color.green || 0.0;
-                              #        var blueFrac = rgb_color.blue || 0.0;
-                              #        var red = Math.floor(redFrac * 255);
-                              #        var green = Math.floor(greenFrac * 255);
-                              #        var blue = Math.floor(blueFrac * 255);
-                              #
-                              #        if (!('alpha' in rgb_color)) {
-                              #           return rgbToCssColor_(red, green, blue);
-                              #        }
-                              #
-                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                              #        var rgbParams = [red, green, blue].join(',');
-                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                              #     };
-                              #
-                              #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                              #       var hexString = rgbNumber.toString(16);
-                              #       var missingZeros = 6 - hexString.length;
-                              #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
-                              #          resultBuilder.push('0');
-                              #       }
-                              #       resultBuilder.push(hexString);
-                              #       return resultBuilder.join('');
-                              #     };
-                              #
-                              #     // ...
-                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                                # the final pixel color is defined by the equation:
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
                                 #
-                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
                                 #
-                                # This means that a value of 1.0 corresponds to a solid color, whereas
-                                # a value of 0.0 corresponds to a completely transparent color. This
-                                # uses a wrapper message rather than a simple float scalar so that it is
-                                # possible to distinguish between a default value and the value being unset.
-                                # If omitted, this color object is to be rendered as a solid color
-                                # (as if the alpha value had been explicitly given with a value of 1.0).
-                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
                           },
-                          "width": 42, # The width of the border, in pixels.
-                              # Deprecated; the width is determined by the "style" field.
-                          "style": "A String", # The style of the border.
-                        },
-                        "bottom": { # A border along a cell. # The bottom border of the cell.
-                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                              # for simplicity of conversion to/from color representations in various
-                              # languages over compactness; for example, the fields of this representation
-                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                              # method in iOS; and, with just a little work, it can be easily formatted into
-                              # a CSS "rgba()" string in JavaScript, as well.
-                              #
-                              # Note: this proto does not carry information about the absolute color space
-                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                              # space.
-                              #
-                              # Example (Java):
-                              #
-                              #      import com.google.type.Color;
-                              #
-                              #      // ...
-                              #      public static java.awt.Color fromProto(Color protocolor) {
-                              #        float alpha = protocolor.hasAlpha()
-                              #            ? protocolor.getAlpha().getValue()
-                              #            : 1.0;
-                              #
-                              #        return new java.awt.Color(
-                              #            protocolor.getRed(),
-                              #            protocolor.getGreen(),
-                              #            protocolor.getBlue(),
-                              #            alpha);
-                              #      }
-                              #
-                              #      public static Color toProto(java.awt.Color color) {
-                              #        float red = (float) color.getRed();
-                              #        float green = (float) color.getGreen();
-                              #        float blue = (float) color.getBlue();
-                              #        float denominator = 255.0;
-                              #        Color.Builder resultBuilder =
-                              #            Color
-                              #                .newBuilder()
-                              #                .setRed(red / denominator)
-                              #                .setGreen(green / denominator)
-                              #                .setBlue(blue / denominator);
-                              #        int alpha = color.getAlpha();
-                              #        if (alpha != 255) {
-                              #          result.setAlpha(
-                              #              FloatValue
-                              #                  .newBuilder()
-                              #                  .setValue(((float) alpha) / denominator)
-                              #                  .build());
-                              #        }
-                              #        return resultBuilder.build();
-                              #      }
-                              #      // ...
-                              #
-                              # Example (iOS / Obj-C):
-                              #
-                              #      // ...
-                              #      static UIColor* fromProto(Color* protocolor) {
-                              #         float red = [protocolor red];
-                              #         float green = [protocolor green];
-                              #         float blue = [protocolor blue];
-                              #         FloatValue* alpha_wrapper = [protocolor alpha];
-                              #         float alpha = 1.0;
-                              #         if (alpha_wrapper != nil) {
-                              #           alpha = [alpha_wrapper value];
-                              #         }
-                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                              #      }
-                              #
-                              #      static Color* toProto(UIColor* color) {
-                              #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                              #            return nil;
-                              #          }
-                              #          Color* result = [[Color alloc] init];
-                              #          [result setRed:red];
-                              #          [result setGreen:green];
-                              #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
-                              #            [result setAlpha:floatWrapperWithValue(alpha)];
-                              #          }
-                              #          [result autorelease];
-                              #          return result;
-                              #     }
-                              #     // ...
-                              #
-                              #  Example (JavaScript):
-                              #
-                              #     // ...
-                              #
-                              #     var protoToCssColor = function(rgb_color) {
-                              #        var redFrac = rgb_color.red || 0.0;
-                              #        var greenFrac = rgb_color.green || 0.0;
-                              #        var blueFrac = rgb_color.blue || 0.0;
-                              #        var red = Math.floor(redFrac * 255);
-                              #        var green = Math.floor(greenFrac * 255);
-                              #        var blue = Math.floor(blueFrac * 255);
-                              #
-                              #        if (!('alpha' in rgb_color)) {
-                              #           return rgbToCssColor_(red, green, blue);
-                              #        }
-                              #
-                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                              #        var rgbParams = [red, green, blue].join(',');
-                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                              #     };
-                              #
-                              #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                              #       var hexString = rgbNumber.toString(16);
-                              #       var missingZeros = 6 - hexString.length;
-                              #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
-                              #          resultBuilder.push('0');
-                              #       }
-                              #       resultBuilder.push(hexString);
-                              #       return resultBuilder.join('');
-                              #     };
-                              #
-                              #     // ...
-                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                                # the final pixel color is defined by the equation:
-                                #
-                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                                #
-                                # This means that a value of 1.0 corresponds to a solid color, whereas
-                                # a value of 0.0 corresponds to a completely transparent color. This
-                                # uses a wrapper message rather than a simple float scalar so that it is
-                                # possible to distinguish between a default value and the value being unset.
-                                # If omitted, this color object is to be rendered as a solid color
-                                # (as if the alpha value had been explicitly given with a value of 1.0).
-                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                          },
-                          "width": 42, # The width of the border, in pixels.
-                              # Deprecated; the width is determined by the "style" field.
                           "style": "A String", # The style of the border.
                         },
                         "left": { # A border along a cell. # The left border of the cell.
@@ -79161,14 +166310,14 @@
                               #
                               #      static Color* toProto(UIColor* color) {
                               #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                               #            return nil;
                               #          }
                               #          Color* result = [[Color alloc] init];
                               #          [result setRed:red];
                               #          [result setGreen:green];
                               #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
+                              #          if (alpha &lt;= 0.9999) {
                               #            [result setAlpha:floatWrapperWithValue(alpha)];
                               #          }
                               #          [result autorelease];
@@ -79198,11 +166347,11 @@
                               #     };
                               #
                               #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                               #       var hexString = rgbNumber.toString(16);
                               #       var missingZeros = 6 - hexString.length;
                               #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
                               #          resultBuilder.push('0');
                               #       }
                               #       resultBuilder.push(hexString);
@@ -79227,6 +166376,698 @@
                           },
                           "width": 42, # The width of the border, in pixels.
                               # Deprecated; the width is determined by the "style" field.
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                          },
+                          "style": "A String", # The style of the border.
+                        },
+                        "right": { # A border along a cell. # The right border of the cell.
+                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                          "width": 42, # The width of the border, in pixels.
+                              # Deprecated; the width is determined by the "style" field.
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                          },
+                          "style": "A String", # The style of the border.
+                        },
+                        "bottom": { # A border along a cell. # The bottom border of the cell.
+                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                          "width": 42, # The width of the border, in pixels.
+                              # Deprecated; the width is determined by the "style" field.
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                          },
                           "style": "A String", # The style of the border.
                         },
                       },
@@ -79324,14 +167165,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -79361,11 +167202,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -79389,6 +167230,144 @@
                           "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                         },
                         "bold": True or False, # True if the text is bold.
+                        "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                            # If foreground_color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
                         "strikethrough": True or False, # True if the text has a strikethrough.
                         "fontFamily": "A String", # The font family.
                         "fontSize": 42, # The size of the font.
@@ -79515,14 +167494,14 @@
                               #
                               #      static Color* toProto(UIColor* color) {
                               #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                               #            return nil;
                               #          }
                               #          Color* result = [[Color alloc] init];
                               #          [result setRed:red];
                               #          [result setGreen:green];
                               #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
+                              #          if (alpha &lt;= 0.9999) {
                               #            [result setAlpha:floatWrapperWithValue(alpha)];
                               #          }
                               #          [result autorelease];
@@ -79552,11 +167531,11 @@
                               #     };
                               #
                               #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                               #       var hexString = rgbNumber.toString(16);
                               #       var missingZeros = 6 - hexString.length;
                               #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
                               #          resultBuilder.push('0');
                               #       }
                               #       resultBuilder.push(hexString);
@@ -79580,6 +167559,144 @@
                             "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                           },
                           "bold": True or False, # True if the text is bold.
+                          "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                              # If foreground_color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                          },
                           "strikethrough": True or False, # True if the text has a strikethrough.
                           "fontFamily": "A String", # The font family.
                           "fontSize": 42, # The size of the font.
@@ -79599,6 +167716,16 @@
           { # A group over an interval of rows or columns on a sheet, which can contain or
               # be contained within other groups. A group can be collapsed or expanded as a
               # unit on the sheet.
+            "depth": 42, # The depth of the group, representing how many groups have a range that
+                # wholly contains the range of this group.
+            "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
+                # collapsed if an overlapping group at a shallower depth is expanded.
+                #
+                # A true value does not imply that all dimensions within the group are
+                # hidden, since a dimension's visibility can change independently from this
+                # group property. However, when this property is updated, all dimensions
+                # within it are set to hidden if this field is true, or set to visible if
+                # this field is false.
             "range": { # A range along a single dimension on a sheet. # The range over which this group exists.
                 # All indexes are zero-based.
                 # Indexes are half open: the start index is inclusive
@@ -79609,16 +167736,6 @@
               "sheetId": 42, # The sheet this span is on.
               "dimension": "A String", # The dimension of the span.
             },
-            "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
-                # collapsed if an overlapping group at a shallower depth is expanded.
-                #
-                # A true value does not imply that all dimensions within the group are
-                # hidden, since a dimension's visibility can change independently from this
-                # group property. However, when this property is updated, all dimensions
-                # within it are set to hidden if this field is true, or set to visible if
-                # this field is false.
-            "depth": 42, # The depth of the group, representing how many groups have a range that
-                # wholly contains the range of this group.
           },
         ],
       },
@@ -79679,9 +167796,164 @@
           # * a combination of the ISO language code and country code, such as `en_US`
           #
           # Note: when updating this field, not all locales/languages are supported.
+      "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
+      "spreadsheetTheme": { # Represents spreadsheet theme # Theme applied to the spreadsheet.
+        "themeColors": [ # The spreadsheet theme color pairs. To update you must provide all theme
+            # color pairs.
+          { # A pair mapping a spreadsheet theme color type to the concrete color it
+              # represents.
+            "color": { # A color value. # The concrete color corresponding to the theme color type.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
+            "colorType": "A String", # The type of the spreadsheet theme color.
+          },
+        ],
+        "primaryFontFamily": "A String", # / Name of the primary font family.
+      },
       "defaultFormat": { # The format of a cell. # The default format of all cells in the spreadsheet.
           # CellData.effectiveFormat will not be set if
           # the cell's format is equal to this default format. This field is read-only.
+        "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+            # When updating padding, every field must be specified.
+          "top": 42, # The top padding of the cell.
+          "left": 42, # The left padding of the cell.
+          "right": 42, # The right padding of the cell.
+          "bottom": 42, # The bottom padding of the cell.
+        },
         "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
           "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
               # the user's locale will be used if necessary for the given type.
@@ -79691,12 +167963,143 @@
               # When writing, this field must be set.
         },
         "textDirection": "A String", # The direction of the text in the cell.
-        "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-            # When updating padding, every field must be specified.
-          "top": 42, # The top padding of the cell.
-          "left": 42, # The left padding of the cell.
-          "right": 42, # The right padding of the cell.
-          "bottom": 42, # The bottom padding of the cell.
+        "backgroundColorStyle": { # A color value. # The background color of the cell.
+            # If background_color is also set, this field takes precedence.
+          "themeColor": "A String", # Theme color.
+          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+              # for simplicity of conversion to/from color representations in various
+              # languages over compactness; for example, the fields of this representation
+              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+              # method in iOS; and, with just a little work, it can be easily formatted into
+              # a CSS "rgba()" string in JavaScript, as well.
+              #
+              # Note: this proto does not carry information about the absolute color space
+              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+              # space.
+              #
+              # Example (Java):
+              #
+              #      import com.google.type.Color;
+              #
+              #      // ...
+              #      public static java.awt.Color fromProto(Color protocolor) {
+              #        float alpha = protocolor.hasAlpha()
+              #            ? protocolor.getAlpha().getValue()
+              #            : 1.0;
+              #
+              #        return new java.awt.Color(
+              #            protocolor.getRed(),
+              #            protocolor.getGreen(),
+              #            protocolor.getBlue(),
+              #            alpha);
+              #      }
+              #
+              #      public static Color toProto(java.awt.Color color) {
+              #        float red = (float) color.getRed();
+              #        float green = (float) color.getGreen();
+              #        float blue = (float) color.getBlue();
+              #        float denominator = 255.0;
+              #        Color.Builder resultBuilder =
+              #            Color
+              #                .newBuilder()
+              #                .setRed(red / denominator)
+              #                .setGreen(green / denominator)
+              #                .setBlue(blue / denominator);
+              #        int alpha = color.getAlpha();
+              #        if (alpha != 255) {
+              #          result.setAlpha(
+              #              FloatValue
+              #                  .newBuilder()
+              #                  .setValue(((float) alpha) / denominator)
+              #                  .build());
+              #        }
+              #        return resultBuilder.build();
+              #      }
+              #      // ...
+              #
+              # Example (iOS / Obj-C):
+              #
+              #      // ...
+              #      static UIColor* fromProto(Color* protocolor) {
+              #         float red = [protocolor red];
+              #         float green = [protocolor green];
+              #         float blue = [protocolor blue];
+              #         FloatValue* alpha_wrapper = [protocolor alpha];
+              #         float alpha = 1.0;
+              #         if (alpha_wrapper != nil) {
+              #           alpha = [alpha_wrapper value];
+              #         }
+              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+              #      }
+              #
+              #      static Color* toProto(UIColor* color) {
+              #          CGFloat red, green, blue, alpha;
+              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+              #            return nil;
+              #          }
+              #          Color* result = [[Color alloc] init];
+              #          [result setRed:red];
+              #          [result setGreen:green];
+              #          [result setBlue:blue];
+              #          if (alpha &lt;= 0.9999) {
+              #            [result setAlpha:floatWrapperWithValue(alpha)];
+              #          }
+              #          [result autorelease];
+              #          return result;
+              #     }
+              #     // ...
+              #
+              #  Example (JavaScript):
+              #
+              #     // ...
+              #
+              #     var protoToCssColor = function(rgb_color) {
+              #        var redFrac = rgb_color.red || 0.0;
+              #        var greenFrac = rgb_color.green || 0.0;
+              #        var blueFrac = rgb_color.blue || 0.0;
+              #        var red = Math.floor(redFrac * 255);
+              #        var green = Math.floor(greenFrac * 255);
+              #        var blue = Math.floor(blueFrac * 255);
+              #
+              #        if (!('alpha' in rgb_color)) {
+              #           return rgbToCssColor_(red, green, blue);
+              #        }
+              #
+              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+              #        var rgbParams = [red, green, blue].join(',');
+              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+              #     };
+              #
+              #     var rgbToCssColor_ = function(red, green, blue) {
+              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+              #       var hexString = rgbNumber.toString(16);
+              #       var missingZeros = 6 - hexString.length;
+              #       var resultBuilder = ['#'];
+              #       for (var i = 0; i &lt; missingZeros; i++) {
+              #          resultBuilder.push('0');
+              #       }
+              #       resultBuilder.push(hexString);
+              #       return resultBuilder.join('');
+              #     };
+              #
+              #     // ...
+            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                # the final pixel color is defined by the equation:
+                #
+                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                #
+                # This means that a value of 1.0 corresponds to a solid color, whereas
+                # a value of 0.0 corresponds to a completely transparent color. This
+                # uses a wrapper message rather than a simple float scalar so that it is
+                # possible to distinguish between a default value and the value being unset.
+                # If omitted, this color object is to be rendered as a solid color
+                # (as if the alpha value had been explicitly given with a value of 1.0).
+            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+          },
         },
         "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
         "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -79769,14 +168172,14 @@
             #
             #      static Color* toProto(UIColor* color) {
             #          CGFloat red, green, blue, alpha;
-            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
             #            return nil;
             #          }
             #          Color* result = [[Color alloc] init];
             #          [result setRed:red];
             #          [result setGreen:green];
             #          [result setBlue:blue];
-            #          if (alpha <= 0.9999) {
+            #          if (alpha &lt;= 0.9999) {
             #            [result setAlpha:floatWrapperWithValue(alpha)];
             #          }
             #          [result autorelease];
@@ -79806,11 +168209,11 @@
             #     };
             #
             #     var rgbToCssColor_ = function(red, green, blue) {
-            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
             #       var hexString = rgbNumber.toString(16);
             #       var missingZeros = 6 - hexString.length;
             #       var resultBuilder = ['#'];
-            #       for (var i = 0; i < missingZeros; i++) {
+            #       for (var i = 0; i &lt; missingZeros; i++) {
             #          resultBuilder.push('0');
             #       }
             #       resultBuilder.push(hexString);
@@ -79906,14 +168309,14 @@
                 #
                 #      static Color* toProto(UIColor* color) {
                 #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                 #            return nil;
                 #          }
                 #          Color* result = [[Color alloc] init];
                 #          [result setRed:red];
                 #          [result setGreen:green];
                 #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
+                #          if (alpha &lt;= 0.9999) {
                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                 #          }
                 #          [result autorelease];
@@ -79943,11 +168346,11 @@
                 #     };
                 #
                 #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                 #       var hexString = rgbNumber.toString(16);
                 #       var missingZeros = 6 - hexString.length;
                 #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
+                #       for (var i = 0; i &lt; missingZeros; i++) {
                 #          resultBuilder.push('0');
                 #       }
                 #       resultBuilder.push(hexString);
@@ -79972,284 +168375,144 @@
             },
             "width": 42, # The width of the border, in pixels.
                 # Deprecated; the width is determined by the "style" field.
-            "style": "A String", # The style of the border.
-          },
-          "right": { # A border along a cell. # The right border of the cell.
-            "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                # for simplicity of conversion to/from color representations in various
-                # languages over compactness; for example, the fields of this representation
-                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                # method in iOS; and, with just a little work, it can be easily formatted into
-                # a CSS "rgba()" string in JavaScript, as well.
-                #
-                # Note: this proto does not carry information about the absolute color space
-                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                # space.
-                #
-                # Example (Java):
-                #
-                #      import com.google.type.Color;
-                #
-                #      // ...
-                #      public static java.awt.Color fromProto(Color protocolor) {
-                #        float alpha = protocolor.hasAlpha()
-                #            ? protocolor.getAlpha().getValue()
-                #            : 1.0;
-                #
-                #        return new java.awt.Color(
-                #            protocolor.getRed(),
-                #            protocolor.getGreen(),
-                #            protocolor.getBlue(),
-                #            alpha);
-                #      }
-                #
-                #      public static Color toProto(java.awt.Color color) {
-                #        float red = (float) color.getRed();
-                #        float green = (float) color.getGreen();
-                #        float blue = (float) color.getBlue();
-                #        float denominator = 255.0;
-                #        Color.Builder resultBuilder =
-                #            Color
-                #                .newBuilder()
-                #                .setRed(red / denominator)
-                #                .setGreen(green / denominator)
-                #                .setBlue(blue / denominator);
-                #        int alpha = color.getAlpha();
-                #        if (alpha != 255) {
-                #          result.setAlpha(
-                #              FloatValue
-                #                  .newBuilder()
-                #                  .setValue(((float) alpha) / denominator)
-                #                  .build());
-                #        }
-                #        return resultBuilder.build();
-                #      }
-                #      // ...
-                #
-                # Example (iOS / Obj-C):
-                #
-                #      // ...
-                #      static UIColor* fromProto(Color* protocolor) {
-                #         float red = [protocolor red];
-                #         float green = [protocolor green];
-                #         float blue = [protocolor blue];
-                #         FloatValue* alpha_wrapper = [protocolor alpha];
-                #         float alpha = 1.0;
-                #         if (alpha_wrapper != nil) {
-                #           alpha = [alpha_wrapper value];
-                #         }
-                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                #      }
-                #
-                #      static Color* toProto(UIColor* color) {
-                #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                #            return nil;
-                #          }
-                #          Color* result = [[Color alloc] init];
-                #          [result setRed:red];
-                #          [result setGreen:green];
-                #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
-                #            [result setAlpha:floatWrapperWithValue(alpha)];
-                #          }
-                #          [result autorelease];
-                #          return result;
-                #     }
-                #     // ...
-                #
-                #  Example (JavaScript):
-                #
-                #     // ...
-                #
-                #     var protoToCssColor = function(rgb_color) {
-                #        var redFrac = rgb_color.red || 0.0;
-                #        var greenFrac = rgb_color.green || 0.0;
-                #        var blueFrac = rgb_color.blue || 0.0;
-                #        var red = Math.floor(redFrac * 255);
-                #        var green = Math.floor(greenFrac * 255);
-                #        var blue = Math.floor(blueFrac * 255);
-                #
-                #        if (!('alpha' in rgb_color)) {
-                #           return rgbToCssColor_(red, green, blue);
-                #        }
-                #
-                #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                #        var rgbParams = [red, green, blue].join(',');
-                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                #     };
-                #
-                #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                #       var hexString = rgbNumber.toString(16);
-                #       var missingZeros = 6 - hexString.length;
-                #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
-                #          resultBuilder.push('0');
-                #       }
-                #       resultBuilder.push(hexString);
-                #       return resultBuilder.join('');
-                #     };
-                #
-                #     // ...
-              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                  # the final pixel color is defined by the equation:
+            "colorStyle": { # A color value. # The color of the border.
+                # If color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
                   #
-                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
                   #
-                  # This means that a value of 1.0 corresponds to a solid color, whereas
-                  # a value of 0.0 corresponds to a completely transparent color. This
-                  # uses a wrapper message rather than a simple float scalar so that it is
-                  # possible to distinguish between a default value and the value being unset.
-                  # If omitted, this color object is to be rendered as a solid color
-                  # (as if the alpha value had been explicitly given with a value of 1.0).
-              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
             },
-            "width": 42, # The width of the border, in pixels.
-                # Deprecated; the width is determined by the "style" field.
-            "style": "A String", # The style of the border.
-          },
-          "bottom": { # A border along a cell. # The bottom border of the cell.
-            "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                # for simplicity of conversion to/from color representations in various
-                # languages over compactness; for example, the fields of this representation
-                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                # method in iOS; and, with just a little work, it can be easily formatted into
-                # a CSS "rgba()" string in JavaScript, as well.
-                #
-                # Note: this proto does not carry information about the absolute color space
-                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                # space.
-                #
-                # Example (Java):
-                #
-                #      import com.google.type.Color;
-                #
-                #      // ...
-                #      public static java.awt.Color fromProto(Color protocolor) {
-                #        float alpha = protocolor.hasAlpha()
-                #            ? protocolor.getAlpha().getValue()
-                #            : 1.0;
-                #
-                #        return new java.awt.Color(
-                #            protocolor.getRed(),
-                #            protocolor.getGreen(),
-                #            protocolor.getBlue(),
-                #            alpha);
-                #      }
-                #
-                #      public static Color toProto(java.awt.Color color) {
-                #        float red = (float) color.getRed();
-                #        float green = (float) color.getGreen();
-                #        float blue = (float) color.getBlue();
-                #        float denominator = 255.0;
-                #        Color.Builder resultBuilder =
-                #            Color
-                #                .newBuilder()
-                #                .setRed(red / denominator)
-                #                .setGreen(green / denominator)
-                #                .setBlue(blue / denominator);
-                #        int alpha = color.getAlpha();
-                #        if (alpha != 255) {
-                #          result.setAlpha(
-                #              FloatValue
-                #                  .newBuilder()
-                #                  .setValue(((float) alpha) / denominator)
-                #                  .build());
-                #        }
-                #        return resultBuilder.build();
-                #      }
-                #      // ...
-                #
-                # Example (iOS / Obj-C):
-                #
-                #      // ...
-                #      static UIColor* fromProto(Color* protocolor) {
-                #         float red = [protocolor red];
-                #         float green = [protocolor green];
-                #         float blue = [protocolor blue];
-                #         FloatValue* alpha_wrapper = [protocolor alpha];
-                #         float alpha = 1.0;
-                #         if (alpha_wrapper != nil) {
-                #           alpha = [alpha_wrapper value];
-                #         }
-                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                #      }
-                #
-                #      static Color* toProto(UIColor* color) {
-                #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                #            return nil;
-                #          }
-                #          Color* result = [[Color alloc] init];
-                #          [result setRed:red];
-                #          [result setGreen:green];
-                #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
-                #            [result setAlpha:floatWrapperWithValue(alpha)];
-                #          }
-                #          [result autorelease];
-                #          return result;
-                #     }
-                #     // ...
-                #
-                #  Example (JavaScript):
-                #
-                #     // ...
-                #
-                #     var protoToCssColor = function(rgb_color) {
-                #        var redFrac = rgb_color.red || 0.0;
-                #        var greenFrac = rgb_color.green || 0.0;
-                #        var blueFrac = rgb_color.blue || 0.0;
-                #        var red = Math.floor(redFrac * 255);
-                #        var green = Math.floor(greenFrac * 255);
-                #        var blue = Math.floor(blueFrac * 255);
-                #
-                #        if (!('alpha' in rgb_color)) {
-                #           return rgbToCssColor_(red, green, blue);
-                #        }
-                #
-                #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                #        var rgbParams = [red, green, blue].join(',');
-                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                #     };
-                #
-                #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                #       var hexString = rgbNumber.toString(16);
-                #       var missingZeros = 6 - hexString.length;
-                #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
-                #          resultBuilder.push('0');
-                #       }
-                #       resultBuilder.push(hexString);
-                #       return resultBuilder.join('');
-                #     };
-                #
-                #     // ...
-              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                  # the final pixel color is defined by the equation:
-                  #
-                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                  #
-                  # This means that a value of 1.0 corresponds to a solid color, whereas
-                  # a value of 0.0 corresponds to a completely transparent color. This
-                  # uses a wrapper message rather than a simple float scalar so that it is
-                  # possible to distinguish between a default value and the value being unset.
-                  # If omitted, this color object is to be rendered as a solid color
-                  # (as if the alpha value had been explicitly given with a value of 1.0).
-              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-            },
-            "width": 42, # The width of the border, in pixels.
-                # Deprecated; the width is determined by the "style" field.
             "style": "A String", # The style of the border.
           },
           "left": { # A border along a cell. # The left border of the cell.
@@ -80323,14 +168586,14 @@
                 #
                 #      static Color* toProto(UIColor* color) {
                 #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                 #            return nil;
                 #          }
                 #          Color* result = [[Color alloc] init];
                 #          [result setRed:red];
                 #          [result setGreen:green];
                 #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
+                #          if (alpha &lt;= 0.9999) {
                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                 #          }
                 #          [result autorelease];
@@ -80360,11 +168623,11 @@
                 #     };
                 #
                 #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                 #       var hexString = rgbNumber.toString(16);
                 #       var missingZeros = 6 - hexString.length;
                 #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
+                #       for (var i = 0; i &lt; missingZeros; i++) {
                 #          resultBuilder.push('0');
                 #       }
                 #       resultBuilder.push(hexString);
@@ -80389,6 +168652,698 @@
             },
             "width": 42, # The width of the border, in pixels.
                 # Deprecated; the width is determined by the "style" field.
+            "colorStyle": { # A color value. # The color of the border.
+                # If color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
+            "style": "A String", # The style of the border.
+          },
+          "right": { # A border along a cell. # The right border of the cell.
+            "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
+            "width": 42, # The width of the border, in pixels.
+                # Deprecated; the width is determined by the "style" field.
+            "colorStyle": { # A color value. # The color of the border.
+                # If color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
+            "style": "A String", # The style of the border.
+          },
+          "bottom": { # A border along a cell. # The bottom border of the cell.
+            "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
+            "width": 42, # The width of the border, in pixels.
+                # Deprecated; the width is determined by the "style" field.
+            "colorStyle": { # A color value. # The color of the border.
+                # If color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
             "style": "A String", # The style of the border.
           },
         },
@@ -80486,14 +169441,14 @@
               #
               #      static Color* toProto(UIColor* color) {
               #          CGFloat red, green, blue, alpha;
-              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
               #            return nil;
               #          }
               #          Color* result = [[Color alloc] init];
               #          [result setRed:red];
               #          [result setGreen:green];
               #          [result setBlue:blue];
-              #          if (alpha <= 0.9999) {
+              #          if (alpha &lt;= 0.9999) {
               #            [result setAlpha:floatWrapperWithValue(alpha)];
               #          }
               #          [result autorelease];
@@ -80523,11 +169478,11 @@
               #     };
               #
               #     var rgbToCssColor_ = function(red, green, blue) {
-              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
               #       var hexString = rgbNumber.toString(16);
               #       var missingZeros = 6 - hexString.length;
               #       var resultBuilder = ['#'];
-              #       for (var i = 0; i < missingZeros; i++) {
+              #       for (var i = 0; i &lt; missingZeros; i++) {
               #          resultBuilder.push('0');
               #       }
               #       resultBuilder.push(hexString);
@@ -80551,6 +169506,144 @@
             "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
           },
           "bold": True or False, # True if the text is bold.
+          "foregroundColorStyle": { # A color value. # The foreground color of the text.
+              # If foreground_color is also set, this field takes precedence.
+            "themeColor": "A String", # Theme color.
+            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
+          },
           "strikethrough": True or False, # True if the text has a strikethrough.
           "fontFamily": "A String", # The font family.
           "fontSize": 42, # The size of the font.
@@ -80559,10 +169652,9 @@
         },
         "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
       },
-      "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
       "iterativeCalculationSettings": { # Settings to control how circular dependencies are resolved with iterative # Determines whether and how circular references are resolved with iterative
-          # calculation.  Absence of this field means that circular references will
-          # result in calculation errors.
+          # calculation.  Absence of this field means that circular references result
+          # in calculation errors.
           # calculation.
         "convergenceThreshold": 3.14, # When iterative calculation is enabled and successive results differ by
             # less than this threshold value, the calculation rounds stop.
@@ -80577,7 +169669,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getByDataFilter">getByDataFilter(spreadsheetId, body, x__xgafv=None)</code>
+    <code class="details" id="getByDataFilter">getByDataFilter(spreadsheetId, body=None, x__xgafv=None)</code>
   <pre>Returns the spreadsheet at the given ID.
 The caller must specify the spreadsheet ID.
 
@@ -80603,7 +169695,7 @@
 
 Args:
   spreadsheetId: string, The spreadsheet to request. (required)
-  body: object, The request body. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # The request for retrieving a Spreadsheet.
@@ -80638,8 +169730,8 @@
               "sheetId": 42, # The sheet this span is on.
               "dimension": "A String", # The dimension of the span.
             },
-            "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
             "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+            "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
           },
           "metadataValue": "A String", # Limits the selected developer metadata to that which has a matching
               # DeveloperMetadata.metadata_value.
@@ -80750,8 +169842,8 @@
             "sheetId": 42, # The sheet this span is on.
             "dimension": "A String", # The dimension of the span.
           },
-          "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
           "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+          "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
         },
         "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
             # specified.
@@ -80761,1387 +169853,30 @@
     ],
     "sheets": [ # The sheets that are part of a spreadsheet.
       { # A sheet in a spreadsheet.
-        "conditionalFormats": [ # The conditional format rules in this sheet.
-          { # A rule describing a conditional format.
-            "ranges": [ # The ranges that are formatted if the condition is true.
-                # All the ranges must be on the same grid.
-              { # A range on a sheet.
-                  # All indexes are zero-based.
-                  # Indexes are half open, e.g the start index is inclusive
-                  # and the end index is exclusive -- [start_index, end_index).
-                  # Missing indexes indicate the range is unbounded on that side.
-                  #
-                  # For example, if `"Sheet1"` is sheet ID 0, then:
-                  #
-                  #   `Sheet1!A1:A1 == sheet_id: 0,
-                  #                   start_row_index: 0, end_row_index: 1,
-                  #                   start_column_index: 0, end_column_index: 1`
-                  #
-                  #   `Sheet1!A3:B4 == sheet_id: 0,
-                  #                   start_row_index: 2, end_row_index: 4,
-                  #                   start_column_index: 0, end_column_index: 2`
-                  #
-                  #   `Sheet1!A:B == sheet_id: 0,
-                  #                 start_column_index: 0, end_column_index: 2`
-                  #
-                  #   `Sheet1!A5:B == sheet_id: 0,
-                  #                  start_row_index: 4,
-                  #                  start_column_index: 0, end_column_index: 2`
-                  #
-                  #   `Sheet1 == sheet_id:0`
-                  #
-                  # The start index must always be less than or equal to the end index.
-                  # If the start index equals the end index, then the range is empty.
-                  # Empty ranges are typically not meaningful and are usually rendered in the
-                  # UI as `#REF!`.
-                "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-                "sheetId": 42, # The sheet this range is on.
-                "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-              },
-            ],
-            "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
-              "condition": { # A condition that can evaluate to true or false. # The condition of the rule. If the condition evaluates to true,
-                  # the format is applied.
-                  # BooleanConditions are used by conditional formatting,
-                  # data validation, and the criteria in filters.
-                "values": [ # The values of the condition. The number of supported values depends
-                    # on the condition type.  Some support zero values,
-                    # others one or two values,
-                    # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
-                  { # The value of the condition.
-                    "relativeDate": "A String", # A relative date (based on the current date).
-                        # Valid only if the type is
-                        # DATE_BEFORE,
-                        # DATE_AFTER,
-                        # DATE_ON_OR_BEFORE or
-                        # DATE_ON_OR_AFTER.
-                        #
-                        # Relative dates are not supported in data validation.
-                        # They are supported only in conditional formatting and
-                        # conditional filters.
-                    "userEnteredValue": "A String", # A value the condition is based on.
-                        # The value is parsed as if the user typed into a cell.
-                        # Formulas are supported (and must begin with an `=` or a '+').
-                  },
-                ],
-                "type": "A String", # The type of condition.
-              },
-              "format": { # The format of a cell. # The format to apply.
-                  # Conditional formatting can only apply a subset of formatting:
-                  # bold, italic,
-                  # strikethrough,
-                  # foreground color &
-                  # background color.
-                "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
-                  "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
-                      # the user's locale will be used if necessary for the given type.
-                      # See the [Date and Number Formats guide](/sheets/api/guides/formats) for
-                      # more information about the supported patterns.
-                  "type": "A String", # The type of the number format.
-                      # When writing, this field must be set.
-                },
-                "textDirection": "A String", # The direction of the text in the cell.
-                "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                    # When updating padding, every field must be specified.
-                  "top": 42, # The top padding of the cell.
-                  "left": 42, # The left padding of the cell.
-                  "right": 42, # The right padding of the cell.
-                  "bottom": 42, # The bottom padding of the cell.
-                },
-                "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
-                "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                },
-                "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
-                "borders": { # The borders of the cell. # The borders of the cell.
-                  "top": { # A border along a cell. # The top border of the cell.
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                    },
-                    "width": 42, # The width of the border, in pixels.
-                        # Deprecated; the width is determined by the "style" field.
-                    "style": "A String", # The style of the border.
-                  },
-                  "right": { # A border along a cell. # The right border of the cell.
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                    },
-                    "width": 42, # The width of the border, in pixels.
-                        # Deprecated; the width is determined by the "style" field.
-                    "style": "A String", # The style of the border.
-                  },
-                  "bottom": { # A border along a cell. # The bottom border of the cell.
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                    },
-                    "width": 42, # The width of the border, in pixels.
-                        # Deprecated; the width is determined by the "style" field.
-                    "style": "A String", # The style of the border.
-                  },
-                  "left": { # A border along a cell. # The left border of the cell.
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                        # for simplicity of conversion to/from color representations in various
-                        # languages over compactness; for example, the fields of this representation
-                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                        # method in iOS; and, with just a little work, it can be easily formatted into
-                        # a CSS "rgba()" string in JavaScript, as well.
-                        #
-                        # Note: this proto does not carry information about the absolute color space
-                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                        # space.
-                        #
-                        # Example (Java):
-                        #
-                        #      import com.google.type.Color;
-                        #
-                        #      // ...
-                        #      public static java.awt.Color fromProto(Color protocolor) {
-                        #        float alpha = protocolor.hasAlpha()
-                        #            ? protocolor.getAlpha().getValue()
-                        #            : 1.0;
-                        #
-                        #        return new java.awt.Color(
-                        #            protocolor.getRed(),
-                        #            protocolor.getGreen(),
-                        #            protocolor.getBlue(),
-                        #            alpha);
-                        #      }
-                        #
-                        #      public static Color toProto(java.awt.Color color) {
-                        #        float red = (float) color.getRed();
-                        #        float green = (float) color.getGreen();
-                        #        float blue = (float) color.getBlue();
-                        #        float denominator = 255.0;
-                        #        Color.Builder resultBuilder =
-                        #            Color
-                        #                .newBuilder()
-                        #                .setRed(red / denominator)
-                        #                .setGreen(green / denominator)
-                        #                .setBlue(blue / denominator);
-                        #        int alpha = color.getAlpha();
-                        #        if (alpha != 255) {
-                        #          result.setAlpha(
-                        #              FloatValue
-                        #                  .newBuilder()
-                        #                  .setValue(((float) alpha) / denominator)
-                        #                  .build());
-                        #        }
-                        #        return resultBuilder.build();
-                        #      }
-                        #      // ...
-                        #
-                        # Example (iOS / Obj-C):
-                        #
-                        #      // ...
-                        #      static UIColor* fromProto(Color* protocolor) {
-                        #         float red = [protocolor red];
-                        #         float green = [protocolor green];
-                        #         float blue = [protocolor blue];
-                        #         FloatValue* alpha_wrapper = [protocolor alpha];
-                        #         float alpha = 1.0;
-                        #         if (alpha_wrapper != nil) {
-                        #           alpha = [alpha_wrapper value];
-                        #         }
-                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                        #      }
-                        #
-                        #      static Color* toProto(UIColor* color) {
-                        #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                        #            return nil;
-                        #          }
-                        #          Color* result = [[Color alloc] init];
-                        #          [result setRed:red];
-                        #          [result setGreen:green];
-                        #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
-                        #            [result setAlpha:floatWrapperWithValue(alpha)];
-                        #          }
-                        #          [result autorelease];
-                        #          return result;
-                        #     }
-                        #     // ...
-                        #
-                        #  Example (JavaScript):
-                        #
-                        #     // ...
-                        #
-                        #     var protoToCssColor = function(rgb_color) {
-                        #        var redFrac = rgb_color.red || 0.0;
-                        #        var greenFrac = rgb_color.green || 0.0;
-                        #        var blueFrac = rgb_color.blue || 0.0;
-                        #        var red = Math.floor(redFrac * 255);
-                        #        var green = Math.floor(greenFrac * 255);
-                        #        var blue = Math.floor(blueFrac * 255);
-                        #
-                        #        if (!('alpha' in rgb_color)) {
-                        #           return rgbToCssColor_(red, green, blue);
-                        #        }
-                        #
-                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                        #        var rgbParams = [red, green, blue].join(',');
-                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                        #     };
-                        #
-                        #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                        #       var hexString = rgbNumber.toString(16);
-                        #       var missingZeros = 6 - hexString.length;
-                        #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
-                        #          resultBuilder.push('0');
-                        #       }
-                        #       resultBuilder.push(hexString);
-                        #       return resultBuilder.join('');
-                        #     };
-                        #
-                        #     // ...
-                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                          # the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color. This
-                          # uses a wrapper message rather than a simple float scalar so that it is
-                          # possible to distinguish between a default value and the value being unset.
-                          # If omitted, this color object is to be rendered as a solid color
-                          # (as if the alpha value had been explicitly given with a value of 1.0).
-                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                    },
-                    "width": 42, # The width of the border, in pixels.
-                        # Deprecated; the width is determined by the "style" field.
-                    "style": "A String", # The style of the border.
-                  },
-                },
-                "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
-                  "angle": 42, # The angle between the standard orientation and the desired orientation.
-                      # Measured in degrees. Valid values are between -90 and 90. Positive
-                      # angles are angled upwards, negative are angled downwards.
-                      #
-                      # Note: For LTR text direction positive angles are in the
-                      # counterclockwise direction, whereas for RTL they are in the clockwise
-                      # direction
-                  "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
-                      # characters is unchanged.
-                      # For example:
-                      #
-                      #     | V |
-                      #     | e |
-                      #     | r |
-                      #     | t |
-                      #     | i |
-                      #     | c |
-                      #     | a |
-                      #     | l |
-                },
-                "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
-                "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
-                    # Absent values indicate that the field isn't specified.
-                  "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
-                        #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                        #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                  },
-                  "bold": True or False, # True if the text is bold.
-                  "strikethrough": True or False, # True if the text has a strikethrough.
-                  "fontFamily": "A String", # The font family.
-                  "fontSize": 42, # The size of the font.
-                  "italic": True or False, # True if the text is italicized.
-                  "underline": True or False, # True if the text is underlined.
-                },
-                "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
-              },
-            },
-            "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule.
-                # the interpolation points listed. The format of a cell will vary
-                # based on its contents as compared to the values of the interpolation
-                # points.
-              "maxpoint": { # A single interpolation point on a gradient conditional format. # The final interpolation point.
-                  # These pin the gradient color scale according to the color,
-                  # type and value chosen.
-                "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                },
-                "type": "A String", # How the value should be interpreted.
-                "value": "A String", # The value this interpolation point uses.  May be a formula.
-                    # Unused if type is MIN or
-                    # MAX.
-              },
-              "midpoint": { # A single interpolation point on a gradient conditional format. # An optional midway interpolation point.
-                  # These pin the gradient color scale according to the color,
-                  # type and value chosen.
-                "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                },
-                "type": "A String", # How the value should be interpreted.
-                "value": "A String", # The value this interpolation point uses.  May be a formula.
-                    # Unused if type is MIN or
-                    # MAX.
-              },
-              "minpoint": { # A single interpolation point on a gradient conditional format. # The starting interpolation point.
-                  # These pin the gradient color scale according to the color,
-                  # type and value chosen.
-                "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                },
-                "type": "A String", # How the value should be interpreted.
-                "value": "A String", # The value this interpolation point uses.  May be a formula.
-                    # Unused if type is MIN or
-                    # MAX.
-              },
+        "columnGroups": [ # All column groups on this sheet, ordered by increasing range start index,
+            # then by group depth.
+          { # A group over an interval of rows or columns on a sheet, which can contain or
+              # be contained within other groups. A group can be collapsed or expanded as a
+              # unit on the sheet.
+            "depth": 42, # The depth of the group, representing how many groups have a range that
+                # wholly contains the range of this group.
+            "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
+                # collapsed if an overlapping group at a shallower depth is expanded.
+                #
+                # A true value does not imply that all dimensions within the group are
+                # hidden, since a dimension's visibility can change independently from this
+                # group property. However, when this property is updated, all dimensions
+                # within it are set to hidden if this field is true, or set to visible if
+                # this field is false.
+            "range": { # A range along a single dimension on a sheet. # The range over which this group exists.
+                # All indexes are zero-based.
+                # Indexes are half open: the start index is inclusive
+                # and the end index is exclusive.
+                # Missing indexes indicate the range is unbounded on that side.
+              "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
+              "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
+              "sheetId": 42, # The sheet this span is on.
+              "dimension": "A String", # The dimension of the span.
             },
           },
         ],
@@ -82267,14 +170002,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -82304,11 +170039,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -82331,12 +170066,12 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first
-                  # row or column will be filled with this color and the colors will
-                  # alternate between first_band_color and second_band_color starting
-                  # from the second row or column. Otherwise, the first row or column will be
-                  # filled with first_band_color and the colors will proceed to alternate
-                  # as they normally would.
+              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would.
                   # for simplicity of conversion to/from color representations in various
                   # languages over compactness; for example, the fields of this representation
                   # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -82406,14 +170141,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -82443,11 +170178,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -82470,142 +170205,426 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
-                  # row or column will be filled with either first_band_color or
+              "footerColorStyle": { # A color value. # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
                   # second_band_color, depending on the color of the previous row or
                   # column.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
+                  # If footer_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
                     #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
                     #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "headerColorStyle": { # A color value. # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would. If header_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "secondBandColorStyle": { # A color value. # The second color that is alternating. (Required)
+                  # If second_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
               },
               "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required)
                   # for simplicity of conversion to/from color representations in various
@@ -82677,14 +170696,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -82714,11 +170733,286 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "firstBandColorStyle": { # A color value. # The first color that is alternating. (Required)
+                  # If first_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
+                  # second_band_color, depending on the color of the previous row or
+                  # column.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -82827,14 +171121,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -82864,11 +171158,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -82891,12 +171185,12 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first
-                  # row or column will be filled with this color and the colors will
-                  # alternate between first_band_color and second_band_color starting
-                  # from the second row or column. Otherwise, the first row or column will be
-                  # filled with first_band_color and the colors will proceed to alternate
-                  # as they normally would.
+              "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would.
                   # for simplicity of conversion to/from color representations in various
                   # languages over compactness; for example, the fields of this representation
                   # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -82966,14 +171260,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -83003,11 +171297,11 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -83030,142 +171324,426 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
-                  # row or column will be filled with either first_band_color or
+              "footerColorStyle": { # A color value. # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
                   # second_band_color, depending on the color of the previous row or
                   # column.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
+                  # If footer_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
                     #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
                     #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "headerColorStyle": { # A color value. # The color of the first row or column. If this field is set, the first row
+                  # or column is filled with this color and the colors alternate between
+                  # first_band_color and second_band_color starting from the second
+                  # row or column. Otherwise, the first row or column is filled with
+                  # first_band_color and the colors proceed to alternate as they normally
+                  # would. If header_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "secondBandColorStyle": { # A color value. # The second color that is alternating. (Required)
+                  # If second_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
               },
               "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required)
                   # for simplicity of conversion to/from color representations in various
@@ -83237,14 +171815,14 @@
                   #
                   #      static Color* toProto(UIColor* color) {
                   #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                   #            return nil;
                   #          }
                   #          Color* result = [[Color alloc] init];
                   #          [result setRed:red];
                   #          [result setGreen:green];
                   #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
+                  #          if (alpha &lt;= 0.9999) {
                   #            [result setAlpha:floatWrapperWithValue(alpha)];
                   #          }
                   #          [result autorelease];
@@ -83274,11 +171852,286 @@
                   #     };
                   #
                   #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                   #       var hexString = rgbNumber.toString(16);
                   #       var missingZeros = 6 - hexString.length;
                   #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "firstBandColorStyle": { # A color value. # The first color that is alternating. (Required)
+                  # If first_band_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last
+                  # row or column is filled with either first_band_color or
+                  # second_band_color, depending on the color of the previous row or
+                  # column.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
                   #          resultBuilder.push('0');
                   #       }
                   #       resultBuilder.push(hexString);
@@ -83381,400 +172234,282 @@
           "sortSpecs": [ # The sort order per column. Later specifications are used when values
               # are equal in the earlier specifications.
             { # A sort order associated with a specific column or row.
-              "sortOrder": "A String", # The order data should be sorted.
-              "dimensionIndex": 42, # The dimension the sort should be applied to.
-            },
-          ],
-          "criteria": { # The criteria for showing/hiding values per column.
-              # The map's key is the column index, and the value is the criteria for
-              # that column.
-            "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
-              "hiddenValues": [ # Values that should be hidden.
-                "A String",
-              ],
-              "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
-                  # (This does not override hiddenValues -- if a value is listed there,
-                  #  it will still be hidden.)
-                  # BooleanConditions are used by conditional formatting,
-                  # data validation, and the criteria in filters.
-                "values": [ # The values of the condition. The number of supported values depends
-                    # on the condition type.  Some support zero values,
-                    # others one or two values,
-                    # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
-                  { # The value of the condition.
-                    "relativeDate": "A String", # A relative date (based on the current date).
-                        # Valid only if the type is
-                        # DATE_BEFORE,
-                        # DATE_AFTER,
-                        # DATE_ON_OR_BEFORE or
-                        # DATE_ON_OR_AFTER.
-                        #
-                        # Relative dates are not supported in data validation.
-                        # They are supported only in conditional formatting and
-                        # conditional filters.
-                    "userEnteredValue": "A String", # A value the condition is based on.
-                        # The value is parsed as if the user typed into a cell.
-                        # Formulas are supported (and must begin with an `=` or a '+').
-                  },
-                ],
-                "type": "A String", # The type of condition.
+              "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to sort by; cells with this foreground color are
+                  # sorted to the top. Mutually exclusive with background_color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-            },
-          },
-        },
-        "developerMetadata": [ # The developer metadata associated with a sheet.
-          { # Developer metadata associated with a location or object in a spreadsheet.
-              # Developer metadata may be used to associate arbitrary data with various
-              # parts of a spreadsheet and will remain associated at those locations as they
-              # move around and the spreadsheet is edited.  For example, if developer
-              # metadata is associated with row 5 and another row is then subsequently
-              # inserted above row 5, that original metadata will still be associated with
-              # the row it was first associated with (what is now row 6). If the associated
-              # object is deleted its metadata is deleted too.
-            "metadataId": 42, # The spreadsheet-scoped unique ID that identifies the metadata. IDs may be
-                # specified when metadata is created, otherwise one will be randomly
-                # generated and assigned. Must be positive.
-            "metadataValue": "A String", # Data associated with the metadata's key.
-            "location": { # A location where metadata may be associated in a spreadsheet. # The location where the metadata is associated.
-              "locationType": "A String", # The type of location this object represents.  This field is read-only.
-              "dimensionRange": { # A range along a single dimension on a sheet. # Represents the row or column when metadata is associated with
-                  # a dimension. The specified DimensionRange must represent a single row
-                  # or column; it cannot be unbounded or span multiple rows or columns.
-                  # All indexes are zero-based.
-                  # Indexes are half open: the start index is inclusive
-                  # and the end index is exclusive.
-                  # Missing indexes indicate the range is unbounded on that side.
-                "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
-                "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
-                "sheetId": 42, # The sheet this span is on.
-                "dimension": "A String", # The dimension of the span.
+              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to sort by; cells with this fill color are sorted
+                  # to the top. Mutually exclusive with foreground_color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
-              "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
-            },
-            "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
-                # specified.
-            "metadataKey": "A String", # The metadata key. There may be multiple metadata in a spreadsheet with the
-                # same key.  Developer metadata must always have a key specified.
-          },
-        ],
-        "columnGroups": [ # All column groups on this sheet, ordered by increasing range start index,
-            # then by group depth.
-          { # A group over an interval of rows or columns on a sheet, which can contain or
-              # be contained within other groups. A group can be collapsed or expanded as a
-              # unit on the sheet.
-            "range": { # A range along a single dimension on a sheet. # The range over which this group exists.
-                # All indexes are zero-based.
-                # Indexes are half open: the start index is inclusive
-                # and the end index is exclusive.
-                # Missing indexes indicate the range is unbounded on that side.
-              "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
-              "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
-              "sheetId": 42, # The sheet this span is on.
-              "dimension": "A String", # The dimension of the span.
-            },
-            "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
-                # collapsed if an overlapping group at a shallower depth is expanded.
-                #
-                # A true value does not imply that all dimensions within the group are
-                # hidden, since a dimension's visibility can change independently from this
-                # group property. However, when this property is updated, all dimensions
-                # within it are set to hidden if this field is true, or set to visible if
-                # this field is false.
-            "depth": 42, # The depth of the group, representing how many groups have a range that
-                # wholly contains the range of this group.
-          },
-        ],
-        "properties": { # Properties of a sheet. # The properties of the sheet.
-          "sheetType": "A String", # The type of sheet. Defaults to GRID.
-              # This field cannot be changed once set.
-          "index": 42, # The index of the sheet within the spreadsheet.
-              # When adding or updating sheet properties, if this field
-              # is excluded then the sheet is added or moved to the end
-              # of the sheet list. When updating sheet indices or inserting
-              # sheets, movement is considered in "before the move" indexes.
-              # For example, if there were 3 sheets (S1, S2, S3) in order to
-              # move S1 ahead of S2 the index would have to be set to 2. A sheet
-              # index update request is ignored if the requested index is
-              # identical to the sheets current index or if the requested new
-              # index is equal to the current sheet index + 1.
-          "title": "A String", # The name of the sheet.
-          "gridProperties": { # Properties of a grid. # Additional properties of the sheet if this sheet is a grid.
-              # (If the sheet is an object sheet, containing a chart or image, then
-              # this field will be absent.)
-              # When writing it is an error to set any grid properties on non-grid sheets.
-            "columnCount": 42, # The number of columns in the grid.
-            "rowGroupControlAfter": True or False, # True if the row grouping control toggle is shown after the group.
-            "columnGroupControlAfter": True or False, # True if the column grouping control toggle is shown after the group.
-            "frozenRowCount": 42, # The number of rows that are frozen in the grid.
-            "frozenColumnCount": 42, # The number of columns that are frozen in the grid.
-            "rowCount": 42, # The number of rows in the grid.
-            "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI.
-          },
-          "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet.
-          "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI.
-              # for simplicity of conversion to/from color representations in various
-              # languages over compactness; for example, the fields of this representation
-              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-              # method in iOS; and, with just a little work, it can be easily formatted into
-              # a CSS "rgba()" string in JavaScript, as well.
-              #
-              # Note: this proto does not carry information about the absolute color space
-              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-              # space.
-              #
-              # Example (Java):
-              #
-              #      import com.google.type.Color;
-              #
-              #      // ...
-              #      public static java.awt.Color fromProto(Color protocolor) {
-              #        float alpha = protocolor.hasAlpha()
-              #            ? protocolor.getAlpha().getValue()
-              #            : 1.0;
-              #
-              #        return new java.awt.Color(
-              #            protocolor.getRed(),
-              #            protocolor.getGreen(),
-              #            protocolor.getBlue(),
-              #            alpha);
-              #      }
-              #
-              #      public static Color toProto(java.awt.Color color) {
-              #        float red = (float) color.getRed();
-              #        float green = (float) color.getGreen();
-              #        float blue = (float) color.getBlue();
-              #        float denominator = 255.0;
-              #        Color.Builder resultBuilder =
-              #            Color
-              #                .newBuilder()
-              #                .setRed(red / denominator)
-              #                .setGreen(green / denominator)
-              #                .setBlue(blue / denominator);
-              #        int alpha = color.getAlpha();
-              #        if (alpha != 255) {
-              #          result.setAlpha(
-              #              FloatValue
-              #                  .newBuilder()
-              #                  .setValue(((float) alpha) / denominator)
-              #                  .build());
-              #        }
-              #        return resultBuilder.build();
-              #      }
-              #      // ...
-              #
-              # Example (iOS / Obj-C):
-              #
-              #      // ...
-              #      static UIColor* fromProto(Color* protocolor) {
-              #         float red = [protocolor red];
-              #         float green = [protocolor green];
-              #         float blue = [protocolor blue];
-              #         FloatValue* alpha_wrapper = [protocolor alpha];
-              #         float alpha = 1.0;
-              #         if (alpha_wrapper != nil) {
-              #           alpha = [alpha_wrapper value];
-              #         }
-              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-              #      }
-              #
-              #      static Color* toProto(UIColor* color) {
-              #          CGFloat red, green, blue, alpha;
-              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-              #            return nil;
-              #          }
-              #          Color* result = [[Color alloc] init];
-              #          [result setRed:red];
-              #          [result setGreen:green];
-              #          [result setBlue:blue];
-              #          if (alpha <= 0.9999) {
-              #            [result setAlpha:floatWrapperWithValue(alpha)];
-              #          }
-              #          [result autorelease];
-              #          return result;
-              #     }
-              #     // ...
-              #
-              #  Example (JavaScript):
-              #
-              #     // ...
-              #
-              #     var protoToCssColor = function(rgb_color) {
-              #        var redFrac = rgb_color.red || 0.0;
-              #        var greenFrac = rgb_color.green || 0.0;
-              #        var blueFrac = rgb_color.blue || 0.0;
-              #        var red = Math.floor(redFrac * 255);
-              #        var green = Math.floor(greenFrac * 255);
-              #        var blue = Math.floor(blueFrac * 255);
-              #
-              #        if (!('alpha' in rgb_color)) {
-              #           return rgbToCssColor_(red, green, blue);
-              #        }
-              #
-              #        var alphaFrac = rgb_color.alpha.value || 0.0;
-              #        var rgbParams = [red, green, blue].join(',');
-              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-              #     };
-              #
-              #     var rgbToCssColor_ = function(red, green, blue) {
-              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-              #       var hexString = rgbNumber.toString(16);
-              #       var missingZeros = 6 - hexString.length;
-              #       var resultBuilder = ['#'];
-              #       for (var i = 0; i < missingZeros; i++) {
-              #          resultBuilder.push('0');
-              #       }
-              #       resultBuilder.push(hexString);
-              #       return resultBuilder.join('');
-              #     };
-              #
-              #     // ...
-            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                # the final pixel color is defined by the equation:
-                #
-                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                #
-                # This means that a value of 1.0 corresponds to a solid color, whereas
-                # a value of 0.0 corresponds to a completely transparent color. This
-                # uses a wrapper message rather than a simple float scalar so that it is
-                # possible to distinguish between a default value and the value being unset.
-                # If omitted, this color object is to be rendered as a solid color
-                # (as if the alpha value had been explicitly given with a value of 1.0).
-            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-          },
-          "hidden": True or False, # True if the sheet is hidden in the UI, false if it's visible.
-          "sheetId": 42, # The ID of the sheet. Must be non-negative.
-              # This field cannot be changed once set.
-        },
-        "filterViews": [ # The filter views in this sheet.
-          { # A filter view.
-            "title": "A String", # The name of the filter view.
-            "namedRangeId": "A String", # The named range this filter view is backed by, if any.
-                #
-                # When writing, only one of range or named_range_id
-                # may be set.
-            "filterViewId": 42, # The ID of the filter view.
-            "range": { # A range on a sheet. # The range this filter view covers.
-                #
-                # When writing, only one of range or named_range_id
-                # may be set.
-                # All indexes are zero-based.
-                # Indexes are half open, e.g the start index is inclusive
-                # and the end index is exclusive -- [start_index, end_index).
-                # Missing indexes indicate the range is unbounded on that side.
-                #
-                # For example, if `"Sheet1"` is sheet ID 0, then:
-                #
-                #   `Sheet1!A1:A1 == sheet_id: 0,
-                #                   start_row_index: 0, end_row_index: 1,
-                #                   start_column_index: 0, end_column_index: 1`
-                #
-                #   `Sheet1!A3:B4 == sheet_id: 0,
-                #                   start_row_index: 2, end_row_index: 4,
-                #                   start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A:B == sheet_id: 0,
-                #                 start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A5:B == sheet_id: 0,
-                #                  start_row_index: 4,
-                #                  start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1 == sheet_id:0`
-                #
-                # The start index must always be less than or equal to the end index.
-                # If the start index equals the end index, then the range is empty.
-                # Empty ranges are typically not meaningful and are usually rendered in the
-                # UI as `#REF!`.
-              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-              "sheetId": 42, # The sheet this range is on.
-              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-            },
-            "sortSpecs": [ # The sort order per column. Later specifications are used when values
-                # are equal in the earlier specifications.
-              { # A sort order associated with a specific column or row.
-                "sortOrder": "A String", # The order data should be sorted.
-                "dimensionIndex": 42, # The dimension the sort should be applied to.
-              },
-            ],
-            "criteria": { # The criteria for showing/hiding values per column.
-                # The map's key is the column index, and the value is the criteria for
-                # that column.
-              "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
-                "hiddenValues": [ # Values that should be hidden.
-                  "A String",
-                ],
-                "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
-                    # (This does not override hiddenValues -- if a value is listed there,
-                    #  it will still be hidden.)
-                    # BooleanConditions are used by conditional formatting,
-                    # data validation, and the criteria in filters.
-                  "values": [ # The values of the condition. The number of supported values depends
-                      # on the condition type.  Some support zero values,
-                      # others one or two values,
-                      # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
-                    { # The value of the condition.
-                      "relativeDate": "A String", # A relative date (based on the current date).
-                          # Valid only if the type is
-                          # DATE_BEFORE,
-                          # DATE_AFTER,
-                          # DATE_ON_OR_BEFORE or
-                          # DATE_ON_OR_AFTER.
-                          #
-                          # Relative dates are not supported in data validation.
-                          # They are supported only in conditional formatting and
-                          # conditional filters.
-                      "userEnteredValue": "A String", # A value the condition is based on.
-                          # The value is parsed as if the user typed into a cell.
-                          # Formulas are supported (and must begin with an `=` or a '+').
-                    },
-                  ],
-                  "type": "A String", # The type of condition.
-                },
-              },
-            },
-          },
-        ],
-        "charts": [ # The specifications of every chart on this sheet.
-          { # A chart embedded in a sheet.
-            "chartId": 42, # The ID of the chart.
-            "position": { # The position of an embedded object such as a chart. # The position of the chart.
-              "newSheet": True or False, # If true, the embedded object is put on a new sheet whose ID
-                  # is chosen for you. Used only when writing.
-              "sheetId": 42, # The sheet this is on. Set only if the embedded object
-                  # is on its own sheet. Must be non-negative.
-              "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid.
-                "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to.
-                    # All indexes are zero-based.
-                  "rowIndex": 42, # The row index of the coordinate.
-                  "columnIndex": 42, # The column index of the coordinate.
-                  "sheetId": 42, # The sheet this coordinate is on.
-                },
-                "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
-                "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
-                    # from the anchor cell.
-                "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
-                    # from the anchor cell.
-                "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
-              },
-            },
-            "spec": { # The specifications of a chart. # The specification of the chart.
-              "fontName": "A String", # The name of the font to use by default for all chart text (e.g. title,
-                  # axis labels, legend).  If a font is specified for a specific part of the
-                  # chart it will override this font name.
-              "altText": "A String", # The alternative text that describes the chart.  This is often used
-                  # for accessibility.
-              "subtitle": "A String", # The subtitle of the chart.
-              "subtitleTextFormat": { # The format of a run of text in a cell. # The subtitle text format.
-                  # Strikethrough and underline are not supported.
-                  # Absent values indicate that the field isn't specified.
-                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+              "foregroundColorStyle": { # A color value. # The foreground color to sort by; cells with this foreground color are
+                  # sorted to the top. Mutually exclusive with background_color, and must
+                  # be an RGB-type color. If foreground_color is also set, this field takes
+                  # precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
                     # for simplicity of conversion to/from color representations in various
                     # languages over compactness; for example, the fields of this representation
                     # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -83844,14 +172579,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -83881,11 +172616,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -83908,12 +172643,3564 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
-                "bold": True or False, # True if the text is bold.
-                "strikethrough": True or False, # True if the text has a strikethrough.
-                "fontFamily": "A String", # The font family.
-                "fontSize": 42, # The size of the font.
-                "italic": True or False, # True if the text is italicized.
-                "underline": True or False, # True if the text is underlined.
+              },
+              "backgroundColorStyle": { # A color value. # The background fill color to sort by; cells with this fill color are sorted
+                  # to the top. Mutually exclusive with foreground_color, and must be an
+                  # RGB-type color. If background_color is also set, this field takes
+                  # precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "sortOrder": "A String", # The order data should be sorted.
+              "dimensionIndex": 42, # The dimension the sort should be applied to.
+            },
+          ],
+          "criteria": { # The criteria for showing/hiding values per column.
+              # The map's key is the column index, and the value is the criteria for
+              # that column.
+            "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
+              "visibleBackgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to filter by; only cells with this fill color are
+                  # shown. Mutually exclusive with visible_foreground_color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "hiddenValues": [ # Values that should be hidden.
+                "A String",
+              ],
+              "visibleBackgroundColorStyle": { # A color value. # The background fill color to filter by; only cells with this fill color are
+                  # shown. This field is mutually exclusive with visible_foreground_color,
+                  # and must be set to an RGB-type color. If visible_background_color is
+                  # also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "visibleForegroundColorStyle": { # A color value. # The foreground color to filter by; only cells with this foreground color
+                  # are shown. This field is mutually exclusive with
+                  # visible_background_color, and must be set to an RGB-type color. If
+                  # visible_foreground_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "visibleForegroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to filter by; only cells with this foreground color
+                  # are shown. Mutually exclusive with visible_background_color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
+                  # (This does not override hidden_values -- if a value is listed there,
+                  #  it will still be hidden.)
+                  # BooleanConditions are used by conditional formatting,
+                  # data validation, and the criteria in filters.
+                "values": [ # The values of the condition. The number of supported values depends
+                    # on the condition type.  Some support zero values,
+                    # others one or two values,
+                    # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                  { # The value of the condition.
+                    "relativeDate": "A String", # A relative date (based on the current date).
+                        # Valid only if the type is
+                        # DATE_BEFORE,
+                        # DATE_AFTER,
+                        # DATE_ON_OR_BEFORE or
+                        # DATE_ON_OR_AFTER.
+                        #
+                        # Relative dates are not supported in data validation.
+                        # They are supported only in conditional formatting and
+                        # conditional filters.
+                    "userEnteredValue": "A String", # A value the condition is based on.
+                        # The value is parsed as if the user typed into a cell.
+                        # Formulas are supported (and must begin with an `=` or a '+').
+                  },
+                ],
+                "type": "A String", # The type of condition.
+              },
+            },
+          },
+        },
+        "developerMetadata": [ # The developer metadata associated with a sheet.
+          { # Developer metadata associated with a location or object in a spreadsheet.
+              # Developer metadata may be used to associate arbitrary data with various
+              # parts of a spreadsheet and will remain associated at those locations as they
+              # move around and the spreadsheet is edited.  For example, if developer
+              # metadata is associated with row 5 and another row is then subsequently
+              # inserted above row 5, that original metadata will still be associated with
+              # the row it was first associated with (what is now row 6). If the associated
+              # object is deleted its metadata is deleted too.
+            "metadataId": 42, # The spreadsheet-scoped unique ID that identifies the metadata. IDs may be
+                # specified when metadata is created, otherwise one will be randomly
+                # generated and assigned. Must be positive.
+            "metadataValue": "A String", # Data associated with the metadata's key.
+            "location": { # A location where metadata may be associated in a spreadsheet. # The location where the metadata is associated.
+              "locationType": "A String", # The type of location this object represents.  This field is read-only.
+              "dimensionRange": { # A range along a single dimension on a sheet. # Represents the row or column when metadata is associated with
+                  # a dimension. The specified DimensionRange must represent a single row
+                  # or column; it cannot be unbounded or span multiple rows or columns.
+                  # All indexes are zero-based.
+                  # Indexes are half open: the start index is inclusive
+                  # and the end index is exclusive.
+                  # Missing indexes indicate the range is unbounded on that side.
+                "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
+                "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
+                "sheetId": 42, # The sheet this span is on.
+                "dimension": "A String", # The dimension of the span.
+              },
+              "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+              "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
+            },
+            "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
+                # specified.
+            "metadataKey": "A String", # The metadata key. There may be multiple metadata in a spreadsheet with the
+                # same key.  Developer metadata must always have a key specified.
+          },
+        ],
+        "conditionalFormats": [ # The conditional format rules in this sheet.
+          { # A rule describing a conditional format.
+            "ranges": [ # The ranges that are formatted if the condition is true.
+                # All the ranges must be on the same grid.
+              { # A range on a sheet.
+                  # All indexes are zero-based.
+                  # Indexes are half open, e.g the start index is inclusive
+                  # and the end index is exclusive -- [start_index, end_index).
+                  # Missing indexes indicate the range is unbounded on that side.
+                  #
+                  # For example, if `"Sheet1"` is sheet ID 0, then:
+                  #
+                  #   `Sheet1!A1:A1 == sheet_id: 0,
+                  #                   start_row_index: 0, end_row_index: 1,
+                  #                   start_column_index: 0, end_column_index: 1`
+                  #
+                  #   `Sheet1!A3:B4 == sheet_id: 0,
+                  #                   start_row_index: 2, end_row_index: 4,
+                  #                   start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1!A:B == sheet_id: 0,
+                  #                 start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1!A5:B == sheet_id: 0,
+                  #                  start_row_index: 4,
+                  #                  start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1 == sheet_id:0`
+                  #
+                  # The start index must always be less than or equal to the end index.
+                  # If the start index equals the end index, then the range is empty.
+                  # Empty ranges are typically not meaningful and are usually rendered in the
+                  # UI as `#REF!`.
+                "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "sheetId": 42, # The sheet this range is on.
+                "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              },
+            ],
+            "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
+              "condition": { # A condition that can evaluate to true or false. # The condition of the rule. If the condition evaluates to true,
+                  # the format is applied.
+                  # BooleanConditions are used by conditional formatting,
+                  # data validation, and the criteria in filters.
+                "values": [ # The values of the condition. The number of supported values depends
+                    # on the condition type.  Some support zero values,
+                    # others one or two values,
+                    # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                  { # The value of the condition.
+                    "relativeDate": "A String", # A relative date (based on the current date).
+                        # Valid only if the type is
+                        # DATE_BEFORE,
+                        # DATE_AFTER,
+                        # DATE_ON_OR_BEFORE or
+                        # DATE_ON_OR_AFTER.
+                        #
+                        # Relative dates are not supported in data validation.
+                        # They are supported only in conditional formatting and
+                        # conditional filters.
+                    "userEnteredValue": "A String", # A value the condition is based on.
+                        # The value is parsed as if the user typed into a cell.
+                        # Formulas are supported (and must begin with an `=` or a '+').
+                  },
+                ],
+                "type": "A String", # The type of condition.
+              },
+              "format": { # The format of a cell. # The format to apply.
+                  # Conditional formatting can only apply a subset of formatting:
+                  # bold, italic,
+                  # strikethrough,
+                  # foreground color &amp;
+                  # background color.
+                "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                    # When updating padding, every field must be specified.
+                  "top": 42, # The top padding of the cell.
+                  "left": 42, # The left padding of the cell.
+                  "right": 42, # The right padding of the cell.
+                  "bottom": 42, # The bottom padding of the cell.
+                },
+                "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
+                  "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
+                      # the user's locale will be used if necessary for the given type.
+                      # See the [Date and Number Formats guide](/sheets/api/guides/formats) for
+                      # more information about the supported patterns.
+                  "type": "A String", # The type of the number format.
+                      # When writing, this field must be set.
+                },
+                "textDirection": "A String", # The direction of the text in the cell.
+                "backgroundColorStyle": { # A color value. # The background color of the cell.
+                    # If background_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
+                "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                "borders": { # The borders of the cell. # The borders of the cell.
+                  "top": { # A border along a cell. # The top border of the cell.
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "width": 42, # The width of the border, in pixels.
+                        # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "style": "A String", # The style of the border.
+                  },
+                  "left": { # A border along a cell. # The left border of the cell.
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "width": 42, # The width of the border, in pixels.
+                        # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "style": "A String", # The style of the border.
+                  },
+                  "right": { # A border along a cell. # The right border of the cell.
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "width": 42, # The width of the border, in pixels.
+                        # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "style": "A String", # The style of the border.
+                  },
+                  "bottom": { # A border along a cell. # The bottom border of the cell.
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "width": 42, # The width of the border, in pixels.
+                        # Deprecated; the width is determined by the "style" field.
+                    "colorStyle": { # A color value. # The color of the border.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "style": "A String", # The style of the border.
+                  },
+                },
+                "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell
+                  "angle": 42, # The angle between the standard orientation and the desired orientation.
+                      # Measured in degrees. Valid values are between -90 and 90. Positive
+                      # angles are angled upwards, negative are angled downwards.
+                      #
+                      # Note: For LTR text direction positive angles are in the
+                      # counterclockwise direction, whereas for RTL they are in the clockwise
+                      # direction
+                  "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual
+                      # characters is unchanged.
+                      # For example:
+                      #
+                      #     | V |
+                      #     | e |
+                      #     | r |
+                      #     | t |
+                      #     | i |
+                      #     | c |
+                      #     | a |
+                      #     | l |
+                },
+                "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell.
+                "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
+                    # Absent values indicate that the field isn't specified.
+                  "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "strikethrough": True or False, # True if the text has a strikethrough.
+                  "fontFamily": "A String", # The font family.
+                  "fontSize": 42, # The size of the font.
+                  "italic": True or False, # True if the text is italicized.
+                  "underline": True or False, # True if the text is underlined.
+                },
+                "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
+              },
+            },
+            "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule.
+                # the interpolation points listed. The format of a cell will vary
+                # based on its contents as compared to the values of the interpolation
+                # points.
+              "maxpoint": { # A single interpolation point on a gradient conditional format. # The final interpolation point.
+                  # These pin the gradient color scale according to the color,
+                  # type and value chosen.
+                "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "type": "A String", # How the value should be interpreted.
+                "value": "A String", # The value this interpolation point uses.  May be a formula.
+                    # Unused if type is MIN or
+                    # MAX.
+              },
+              "midpoint": { # A single interpolation point on a gradient conditional format. # An optional midway interpolation point.
+                  # These pin the gradient color scale according to the color,
+                  # type and value chosen.
+                "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "type": "A String", # How the value should be interpreted.
+                "value": "A String", # The value this interpolation point uses.  May be a formula.
+                    # Unused if type is MIN or
+                    # MAX.
+              },
+              "minpoint": { # A single interpolation point on a gradient conditional format. # The starting interpolation point.
+                  # These pin the gradient color scale according to the color,
+                  # type and value chosen.
+                "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "colorStyle": { # A color value. # The color this interpolation point should use.
+                    # If color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "type": "A String", # How the value should be interpreted.
+                "value": "A String", # The value this interpolation point uses.  May be a formula.
+                    # Unused if type is MIN or
+                    # MAX.
+              },
+            },
+          },
+        ],
+        "charts": [ # The specifications of every chart on this sheet.
+          { # A chart embedded in a sheet.
+            "chartId": 42, # The ID of the chart.
+            "position": { # The position of an embedded object such as a chart. # The position of the chart.
+              "newSheet": True or False, # If true, the embedded object is put on a new sheet whose ID
+                  # is chosen for you. Used only when writing.
+              "sheetId": 42, # The sheet this is on. Set only if the embedded object
+                  # is on its own sheet. Must be non-negative.
+              "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid.
+                "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to.
+                    # All indexes are zero-based.
+                  "rowIndex": 42, # The row index of the coordinate.
+                  "columnIndex": 42, # The column index of the coordinate.
+                  "sheetId": 42, # The sheet this coordinate is on.
+                },
+                "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
+                    # from the anchor cell.
+                "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
+                "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
+                    # from the anchor cell.
+                "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
+              },
+            },
+            "spec": { # The specifications of a chart. # The specification of the chart.
+              "fontName": "A String", # The name of the font to use by default for all chart text (e.g. title,
+                  # axis labels, legend).  If a font is specified for a specific part of the
+                  # chart it will override this font name.
+              "altText": "A String", # The alternative text that describes the chart.  This is often used
+                  # for accessibility.
+              "subtitle": "A String", # The subtitle of the chart.
+              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the entire chart.
+                  # Not applicable to Org charts.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
               "title": "A String", # The title of the chart.
               "titleTextFormat": { # The format of a run of text in a cell. # The title text format.
@@ -83989,14 +176276,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -84026,11 +176313,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -84054,20 +176341,158 @@
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
                 "bold": True or False, # True if the text is bold.
+                "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                    # If foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "strikethrough": True or False, # True if the text has a strikethrough.
                 "fontFamily": "A String", # The font family.
                 "fontSize": 42, # The size of the font.
                 "italic": True or False, # True if the text is italicized.
                 "underline": True or False, # True if the text is underlined.
               },
-              "treemapChart": { # A <a href="/chart/interactive/docs/gallery/treemap">Treemap chart</a>. # A treemap chart specification.
+              "treemapChart": { # A &lt;a href="/chart/interactive/docs/gallery/treemap"&gt;Treemap chart&lt;/a&gt;. # A treemap chart specification.
                 "parentLabels": { # The data included in a domain or series. # The data the contains the treemap cells' parent labels.
                   "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                     "sources": [ # The ranges of data for a series or domain.
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -84119,66 +176544,139 @@
                     ],
                   },
                 },
-                "sizeData": { # The data included in a domain or series. # The data that determines the size of each treemap data cell. This data is
-                    # expected to be numeric. The cells corresponding to non-numeric or missing
-                    # data will not be rendered. If color_data is not specified, this data
-                    # is used to determine data cell background colors as well.
-                  "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
-                    "sources": [ # The ranges of data for a series or domain.
-                        # Exactly one dimension must have a length of 1,
-                        # and all sources in the list must have the same dimension
-                        # with length 1.
-                        # The domain (if it exists) & all series must have the same number
-                        # of source ranges. If using more than one source range, then the source
-                        # range at a given offset must be in order and contiguous across the domain
-                        # and series.
-                        #
-                        # For example, these are valid configurations:
-                        #
-                        #     domain sources: A1:A5
-                        #     series1 sources: B1:B5
-                        #     series2 sources: D6:D10
-                        #
-                        #     domain sources: A1:A5, C10:C12
-                        #     series1 sources: B1:B5, D10:D12
-                        #     series2 sources: C1:C5, E10:E12
-                      { # A range on a sheet.
-                          # All indexes are zero-based.
-                          # Indexes are half open, e.g the start index is inclusive
-                          # and the end index is exclusive -- [start_index, end_index).
-                          # Missing indexes indicate the range is unbounded on that side.
-                          #
-                          # For example, if `"Sheet1"` is sheet ID 0, then:
-                          #
-                          #   `Sheet1!A1:A1 == sheet_id: 0,
-                          #                   start_row_index: 0, end_row_index: 1,
-                          #                   start_column_index: 0, end_column_index: 1`
-                          #
-                          #   `Sheet1!A3:B4 == sheet_id: 0,
-                          #                   start_row_index: 2, end_row_index: 4,
-                          #                   start_column_index: 0, end_column_index: 2`
-                          #
-                          #   `Sheet1!A:B == sheet_id: 0,
-                          #                 start_column_index: 0, end_column_index: 2`
-                          #
-                          #   `Sheet1!A5:B == sheet_id: 0,
-                          #                  start_row_index: 4,
-                          #                  start_column_index: 0, end_column_index: 2`
-                          #
-                          #   `Sheet1 == sheet_id:0`
-                          #
-                          # The start index must always be less than or equal to the end index.
-                          # If the start index equals the end index, then the range is empty.
-                          # Empty ranges are typically not meaningful and are usually rendered in the
-                          # UI as `#REF!`.
-                        "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-                        "sheetId": 42, # The sheet this range is on.
-                        "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-                      },
-                    ],
-                  },
+                "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for header cells.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
                 "hideTooltips": True or False, # True to hide tooltips.
                 "colorScale": { # A color scale for a treemap chart. # The color scale for data cells in the treemap chart. Data cells are
@@ -84197,6 +176695,142 @@
                     # Cells with missing or non-numeric color values will have
                     # noDataColor as their background
                     # color.
+                  "maxValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value greater than or equal
+                      # to maxValue. Defaults to #109618 if not
+                      # specified.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
                   "noDataColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells that have no color data associated with
                       # them. Defaults to #000000 if not specified.
                       # for simplicity of conversion to/from color representations in various
@@ -84268,14 +176902,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -84305,11 +176939,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -84332,6 +176966,562 @@
                     "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
+                  "midValueColorStyle": { # A color value. # The background color for cells with a color value at the midpoint between
+                      # minValue and
+                      # maxValue. Defaults to #efe6dc if not
+                      # specified.
+                      # If mid_value_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "maxValueColorStyle": { # A color value. # The background color for cells with a color value greater than or equal
+                      # to maxValue. Defaults to #109618 if not
+                      # specified.
+                      # If max_value_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "minValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value less than or equal to
+                      # minValue. Defaults to #dc3912 if not
+                      # specified.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "noDataColorStyle": { # A color value. # The background color for cells that have no color data associated with
+                      # them. Defaults to #000000 if not specified.
+                      # If no_data_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "midValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value at the midpoint between
                       # minValue and
                       # maxValue. Defaults to #efe6dc if not
@@ -84405,14 +177595,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -84442,11 +177632,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -84469,277 +177659,145 @@
                     "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
-                  "minValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value less than or equal to
+                  "minValueColorStyle": { # A color value. # The background color for cells with a color value less than or equal to
                       # minValue. Defaults to #dc3912 if not
                       # specified.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
+                      # If min_value_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
                         #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
                         #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                  },
-                  "maxValueColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for cells with a color value greater than or equal
-                      # to maxValue. Defaults to #109618 if not
-                      # specified.
-                      # for simplicity of conversion to/from color representations in various
-                      # languages over compactness; for example, the fields of this representation
-                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                      # method in iOS; and, with just a little work, it can be easily formatted into
-                      # a CSS "rgba()" string in JavaScript, as well.
-                      #
-                      # Note: this proto does not carry information about the absolute color space
-                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                      # space.
-                      #
-                      # Example (Java):
-                      #
-                      #      import com.google.type.Color;
-                      #
-                      #      // ...
-                      #      public static java.awt.Color fromProto(Color protocolor) {
-                      #        float alpha = protocolor.hasAlpha()
-                      #            ? protocolor.getAlpha().getValue()
-                      #            : 1.0;
-                      #
-                      #        return new java.awt.Color(
-                      #            protocolor.getRed(),
-                      #            protocolor.getGreen(),
-                      #            protocolor.getBlue(),
-                      #            alpha);
-                      #      }
-                      #
-                      #      public static Color toProto(java.awt.Color color) {
-                      #        float red = (float) color.getRed();
-                      #        float green = (float) color.getGreen();
-                      #        float blue = (float) color.getBlue();
-                      #        float denominator = 255.0;
-                      #        Color.Builder resultBuilder =
-                      #            Color
-                      #                .newBuilder()
-                      #                .setRed(red / denominator)
-                      #                .setGreen(green / denominator)
-                      #                .setBlue(blue / denominator);
-                      #        int alpha = color.getAlpha();
-                      #        if (alpha != 255) {
-                      #          result.setAlpha(
-                      #              FloatValue
-                      #                  .newBuilder()
-                      #                  .setValue(((float) alpha) / denominator)
-                      #                  .build());
-                      #        }
-                      #        return resultBuilder.build();
-                      #      }
-                      #      // ...
-                      #
-                      # Example (iOS / Obj-C):
-                      #
-                      #      // ...
-                      #      static UIColor* fromProto(Color* protocolor) {
-                      #         float red = [protocolor red];
-                      #         float green = [protocolor green];
-                      #         float blue = [protocolor blue];
-                      #         FloatValue* alpha_wrapper = [protocolor alpha];
-                      #         float alpha = 1.0;
-                      #         if (alpha_wrapper != nil) {
-                      #           alpha = [alpha_wrapper value];
-                      #         }
-                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                      #      }
-                      #
-                      #      static Color* toProto(UIColor* color) {
-                      #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                      #            return nil;
-                      #          }
-                      #          Color* result = [[Color alloc] init];
-                      #          [result setRed:red];
-                      #          [result setGreen:green];
-                      #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
-                      #            [result setAlpha:floatWrapperWithValue(alpha)];
-                      #          }
-                      #          [result autorelease];
-                      #          return result;
-                      #     }
-                      #     // ...
-                      #
-                      #  Example (JavaScript):
-                      #
-                      #     // ...
-                      #
-                      #     var protoToCssColor = function(rgb_color) {
-                      #        var redFrac = rgb_color.red || 0.0;
-                      #        var greenFrac = rgb_color.green || 0.0;
-                      #        var blueFrac = rgb_color.blue || 0.0;
-                      #        var red = Math.floor(redFrac * 255);
-                      #        var green = Math.floor(greenFrac * 255);
-                      #        var blue = Math.floor(blueFrac * 255);
-                      #
-                      #        if (!('alpha' in rgb_color)) {
-                      #           return rgbToCssColor_(red, green, blue);
-                      #        }
-                      #
-                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                      #        var rgbParams = [red, green, blue].join(',');
-                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                      #     };
-                      #
-                      #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                      #       var hexString = rgbNumber.toString(16);
-                      #       var missingZeros = 6 - hexString.length;
-                      #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
-                      #          resultBuilder.push('0');
-                      #       }
-                      #       resultBuilder.push(hexString);
-                      #       return resultBuilder.join('');
-                      #     };
-                      #
-                      #     // ...
-                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                        # the final pixel color is defined by the equation:
+                        # Example (Java):
                         #
-                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #      import com.google.type.Color;
                         #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color. This
-                        # uses a wrapper message rather than a simple float scalar so that it is
-                        # possible to distinguish between a default value and the value being unset.
-                        # If omitted, this color object is to be rendered as a solid color
-                        # (as if the alpha value had been explicitly given with a value of 1.0).
-                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
                   },
                 },
                 "labels": { # The data included in a domain or series. # The data that contains the treemap cell labels.
@@ -84748,7 +177806,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -84810,7 +177868,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -84866,147 +177924,74 @@
                     # have the same color as cells with this value. If not specified, defaults
                     # to the actual maximum value from color_data, or the maximum value from
                     # size_data if color_data is not specified.
+                "levels": 42, # The number of data levels to show on the treemap chart. These levels are
+                    # interactive and are shown with their labels. Defaults to 2 if not
+                    # specified.
                 "minValue": 3.14, # The minimum possible data value. Cells with values less than this will
                     # have the same color as cells with this value. If not specified, defaults
                     # to the actual minimum value from color_data, or the minimum value from
                     # size_data if color_data is not specified.
-                "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The background color for header cells.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                "sizeData": { # The data included in a domain or series. # The data that determines the size of each treemap data cell. This data is
+                    # expected to be numeric. The cells corresponding to non-numeric or missing
+                    # data will not be rendered. If color_data is not specified, this data
+                    # is used to determine data cell background colors as well.
+                  "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                    "sources": [ # The ranges of data for a series or domain.
+                        # Exactly one dimension must have a length of 1,
+                        # and all sources in the list must have the same dimension
+                        # with length 1.
+                        # The domain (if it exists) &amp; all series must have the same number
+                        # of source ranges. If using more than one source range, then the source
+                        # range at a given offset must be in order and contiguous across the domain
+                        # and series.
+                        #
+                        # For example, these are valid configurations:
+                        #
+                        #     domain sources: A1:A5
+                        #     series1 sources: B1:B5
+                        #     series2 sources: D6:D10
+                        #
+                        #     domain sources: A1:A5, C10:C12
+                        #     series1 sources: B1:B5, D10:D12
+                        #     series2 sources: C1:C5, E10:E12
+                      { # A range on a sheet.
+                          # All indexes are zero-based.
+                          # Indexes are half open, e.g the start index is inclusive
+                          # and the end index is exclusive -- [start_index, end_index).
+                          # Missing indexes indicate the range is unbounded on that side.
+                          #
+                          # For example, if `"Sheet1"` is sheet ID 0, then:
+                          #
+                          #   `Sheet1!A1:A1 == sheet_id: 0,
+                          #                   start_row_index: 0, end_row_index: 1,
+                          #                   start_column_index: 0, end_column_index: 1`
+                          #
+                          #   `Sheet1!A3:B4 == sheet_id: 0,
+                          #                   start_row_index: 2, end_row_index: 4,
+                          #                   start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A:B == sheet_id: 0,
+                          #                 start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A5:B == sheet_id: 0,
+                          #                  start_row_index: 4,
+                          #                  start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1 == sheet_id:0`
+                          #
+                          # The start index must always be less than or equal to the end index.
+                          # If the start index equals the end index, then the range is empty.
+                          # Empty ranges are typically not meaningful and are usually rendered in the
+                          # UI as `#REF!`.
+                        "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "sheetId": 42, # The sheet this range is on.
+                        "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      },
+                    ],
+                  },
                 },
-                "levels": 42, # The number of data levels to show on the treemap chart. These levels are
-                    # interactive and are shown with their labels. Defaults to 2 if not
-                    # specified.
                 "hintedLevels": 42, # The number of additional data levels beyond the labeled levels to be shown
                     # on the treemap chart. These levels are not interactive and are shown
                     # without their labels. Defaults to 0 if not specified.
@@ -85082,14 +178067,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -85119,11 +178104,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -85147,26 +178132,1706 @@
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
                   "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "strikethrough": True or False, # True if the text has a strikethrough.
                   "fontFamily": "A String", # The font family.
                   "fontSize": 42, # The size of the font.
                   "italic": True or False, # True if the text is italicized.
                   "underline": True or False, # True if the text is underlined.
                 },
+                "headerColorStyle": { # A color value. # The background color for header cells.
+                    # If header_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+              },
+              "scorecardChart": { # A scorecard chart. Scorecard charts are used to highlight key performance # A scorecard chart specification.
+                  # indicators, known as KPIs, on the spreadsheet. A scorecard chart can
+                  # represent things like total sales, average cost, or a top selling item. You
+                  # can specify a single data value, or aggregate over a range of data.
+                  # Percentage or absolute difference from a baseline value can be highlighted,
+                  # like changes over time.
+                "numberFormatSource": "A String", # The number format source used in the scorecard chart.
+                    # This field is optional.
+                "customFormatOptions": { # Custom number formatting options for chart attributes. # Custom formatting options for numeric key/baseline values in scorecard
+                    # chart. This field is used only when number_format_source is set to
+                    # CUSTOM. This field is optional.
+                  "prefix": "A String", # Custom prefix to be prepended to the chart attribute.
+                      # This field is optional.
+                  "suffix": "A String", # Custom suffix to be appended to the chart attribute.
+                      # This field is optional.
+                },
+                "keyValueFormat": { # Formatting options for key value. # Formatting options for key value.
+                  "position": { # Position settings for text. # Specifies the horizontal text positioning of key value.
+                      # This field is optional. If not specified, default positioning is used.
+                    "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
+                  },
+                  "textFormat": { # The format of a run of text in a cell. # Text formatting options for key value.
+                      # Absent values indicate that the field isn't specified.
+                    "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "bold": True or False, # True if the text is bold.
+                    "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                        # If foreground_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "strikethrough": True or False, # True if the text has a strikethrough.
+                    "fontFamily": "A String", # The font family.
+                    "fontSize": 42, # The size of the font.
+                    "italic": True or False, # True if the text is italicized.
+                    "underline": True or False, # True if the text is underlined.
+                  },
+                },
+                "aggregateType": "A String", # The aggregation type for key and baseline chart data in scorecard chart.
+                    # This field is optional.
+                "baselineValueFormat": { # Formatting options for baseline value. # Formatting options for baseline value.
+                    # This field is needed only if baseline_value_data is specified.
+                  "description": "A String", # Description which is appended after the baseline value.
+                      # This field is optional.
+                  "negativeColor": { # Represents a color in the RGBA color space. This representation is designed # Color to be used, in case baseline value represents a negative change for
+                      # key value. This field is optional.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                  "comparisonType": "A String", # The comparison type of key value with baseline value.
+                  "positiveColorStyle": { # A color value. # Color to be used, in case baseline value represents a positive change for
+                      # key value. This field is optional.
+                      # If positive_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "negativeColorStyle": { # A color value. # Color to be used, in case baseline value represents a negative change for
+                      # key value. This field is optional.
+                      # If negative_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
+                  "position": { # Position settings for text. # Specifies the horizontal text positioning of baseline value.
+                      # This field is optional. If not specified, default positioning is used.
+                    "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
+                  },
+                  "textFormat": { # The format of a run of text in a cell. # Text formatting options for baseline value.
+                      # Absent values indicate that the field isn't specified.
+                    "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                    "bold": True or False, # True if the text is bold.
+                    "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                        # If foreground_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "strikethrough": True or False, # True if the text has a strikethrough.
+                    "fontFamily": "A String", # The font family.
+                    "fontSize": 42, # The size of the font.
+                    "italic": True or False, # True if the text is italicized.
+                    "underline": True or False, # True if the text is underlined.
+                  },
+                  "positiveColor": { # Represents a color in the RGBA color space. This representation is designed # Color to be used, in case baseline value represents a positive change for
+                      # key value. This field is optional.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "keyValueData": { # The data included in a domain or series. # The data for scorecard key value.
+                  "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                    "sources": [ # The ranges of data for a series or domain.
+                        # Exactly one dimension must have a length of 1,
+                        # and all sources in the list must have the same dimension
+                        # with length 1.
+                        # The domain (if it exists) &amp; all series must have the same number
+                        # of source ranges. If using more than one source range, then the source
+                        # range at a given offset must be in order and contiguous across the domain
+                        # and series.
+                        #
+                        # For example, these are valid configurations:
+                        #
+                        #     domain sources: A1:A5
+                        #     series1 sources: B1:B5
+                        #     series2 sources: D6:D10
+                        #
+                        #     domain sources: A1:A5, C10:C12
+                        #     series1 sources: B1:B5, D10:D12
+                        #     series2 sources: C1:C5, E10:E12
+                      { # A range on a sheet.
+                          # All indexes are zero-based.
+                          # Indexes are half open, e.g the start index is inclusive
+                          # and the end index is exclusive -- [start_index, end_index).
+                          # Missing indexes indicate the range is unbounded on that side.
+                          #
+                          # For example, if `"Sheet1"` is sheet ID 0, then:
+                          #
+                          #   `Sheet1!A1:A1 == sheet_id: 0,
+                          #                   start_row_index: 0, end_row_index: 1,
+                          #                   start_column_index: 0, end_column_index: 1`
+                          #
+                          #   `Sheet1!A3:B4 == sheet_id: 0,
+                          #                   start_row_index: 2, end_row_index: 4,
+                          #                   start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A:B == sheet_id: 0,
+                          #                 start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A5:B == sheet_id: 0,
+                          #                  start_row_index: 4,
+                          #                  start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1 == sheet_id:0`
+                          #
+                          # The start index must always be less than or equal to the end index.
+                          # If the start index equals the end index, then the range is empty.
+                          # Empty ranges are typically not meaningful and are usually rendered in the
+                          # UI as `#REF!`.
+                        "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "sheetId": 42, # The sheet this range is on.
+                        "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      },
+                    ],
+                  },
+                },
+                "scaleFactor": 3.14, # Value to scale scorecard key and baseline value. For example, a factor of
+                    # 10 can be used to divide all values in the chart by 10.
+                    # This field is optional.
+                "baselineValueData": { # The data included in a domain or series. # The data for scorecard baseline value.
+                    # This field is optional.
+                  "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
+                    "sources": [ # The ranges of data for a series or domain.
+                        # Exactly one dimension must have a length of 1,
+                        # and all sources in the list must have the same dimension
+                        # with length 1.
+                        # The domain (if it exists) &amp; all series must have the same number
+                        # of source ranges. If using more than one source range, then the source
+                        # range at a given offset must be in order and contiguous across the domain
+                        # and series.
+                        #
+                        # For example, these are valid configurations:
+                        #
+                        #     domain sources: A1:A5
+                        #     series1 sources: B1:B5
+                        #     series2 sources: D6:D10
+                        #
+                        #     domain sources: A1:A5, C10:C12
+                        #     series1 sources: B1:B5, D10:D12
+                        #     series2 sources: C1:C5, E10:E12
+                      { # A range on a sheet.
+                          # All indexes are zero-based.
+                          # Indexes are half open, e.g the start index is inclusive
+                          # and the end index is exclusive -- [start_index, end_index).
+                          # Missing indexes indicate the range is unbounded on that side.
+                          #
+                          # For example, if `"Sheet1"` is sheet ID 0, then:
+                          #
+                          #   `Sheet1!A1:A1 == sheet_id: 0,
+                          #                   start_row_index: 0, end_row_index: 1,
+                          #                   start_column_index: 0, end_column_index: 1`
+                          #
+                          #   `Sheet1!A3:B4 == sheet_id: 0,
+                          #                   start_row_index: 2, end_row_index: 4,
+                          #                   start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A:B == sheet_id: 0,
+                          #                 start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1!A5:B == sheet_id: 0,
+                          #                  start_row_index: 4,
+                          #                  start_column_index: 0, end_column_index: 2`
+                          #
+                          #   `Sheet1 == sheet_id:0`
+                          #
+                          # The start index must always be less than or equal to the end index.
+                          # If the start index equals the end index, then the range is empty.
+                          # Empty ranges are typically not meaningful and are usually rendered in the
+                          # UI as `#REF!`.
+                        "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "sheetId": 42, # The sheet this range is on.
+                        "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      },
+                    ],
+                  },
+                },
               },
               "titleTextPosition": { # Position settings for text. # The title text position.
                   # This field is optional.
                 "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
               },
+              "backgroundColorStyle": { # A color value. # The background color of the entire chart.
+                  # Not applicable to Org charts.
+                  # If background_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
               "hiddenDimensionStrategy": "A String", # Determines how the charts will use hidden rows or columns.
-              "pieChart": { # A <a href="/chart/interactive/docs/gallery/piechart">pie chart</a>. # A pie chart specification.
+              "pieChart": { # A &lt;a href="/chart/interactive/docs/gallery/piechart"&gt;pie chart&lt;/a&gt;. # A pie chart specification.
                 "series": { # The data included in a domain or series. # The data that covers the one and only series of the pie chart.
                   "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                     "sources": [ # The ranges of data for a series or domain.
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -85224,7 +179889,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -85280,8 +179945,8 @@
                 "legendPosition": "A String", # Where the legend of the pie chart should be drawn.
                 "pieHole": 3.14, # The size of the hole in the pie chart.
               },
-              "candlestickChart": { # A <a href="/chart/interactive/docs/gallery/candlestickchart">candlestick # A candlestick chart specification.
-                  # chart</a>.
+              "candlestickChart": { # A &lt;a href="/chart/interactive/docs/gallery/candlestickchart"&gt;candlestick # A candlestick chart specification.
+                  # chart&lt;/a&gt;.
                 "domain": { # The domain of a CandlestickChart. # The domain data (horizontal axis) for the candlestick chart.  String data
                     # will be treated as discrete labels, other data will be treated as
                     # continuous values.
@@ -85292,7 +179957,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -85357,7 +180022,7 @@
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -85418,7 +180083,7 @@
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -85480,7 +180145,7 @@
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -85542,7 +180207,7 @@
                               # Exactly one dimension must have a length of 1,
                               # and all sources in the list must have the same dimension
                               # with length 1.
-                              # The domain (if it exists) & all series must have the same number
+                              # The domain (if it exists) &amp; all series must have the same number
                               # of source ranges. If using more than one source range, then the source
                               # range at a given offset must be in order and contiguous across the domain
                               # and series.
@@ -85602,140 +180267,287 @@
                   # This field is optional.
                 "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
               },
-              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the entire chart.
-                  # Not applicable to Org charts.
-                  # for simplicity of conversion to/from color representations in various
-                  # languages over compactness; for example, the fields of this representation
-                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                  # method in iOS; and, with just a little work, it can be easily formatted into
-                  # a CSS "rgba()" string in JavaScript, as well.
-                  #
-                  # Note: this proto does not carry information about the absolute color space
-                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                  # space.
-                  #
-                  # Example (Java):
-                  #
-                  #      import com.google.type.Color;
-                  #
-                  #      // ...
-                  #      public static java.awt.Color fromProto(Color protocolor) {
-                  #        float alpha = protocolor.hasAlpha()
-                  #            ? protocolor.getAlpha().getValue()
-                  #            : 1.0;
-                  #
-                  #        return new java.awt.Color(
-                  #            protocolor.getRed(),
-                  #            protocolor.getGreen(),
-                  #            protocolor.getBlue(),
-                  #            alpha);
-                  #      }
-                  #
-                  #      public static Color toProto(java.awt.Color color) {
-                  #        float red = (float) color.getRed();
-                  #        float green = (float) color.getGreen();
-                  #        float blue = (float) color.getBlue();
-                  #        float denominator = 255.0;
-                  #        Color.Builder resultBuilder =
-                  #            Color
-                  #                .newBuilder()
-                  #                .setRed(red / denominator)
-                  #                .setGreen(green / denominator)
-                  #                .setBlue(blue / denominator);
-                  #        int alpha = color.getAlpha();
-                  #        if (alpha != 255) {
-                  #          result.setAlpha(
-                  #              FloatValue
-                  #                  .newBuilder()
-                  #                  .setValue(((float) alpha) / denominator)
-                  #                  .build());
-                  #        }
-                  #        return resultBuilder.build();
-                  #      }
-                  #      // ...
-                  #
-                  # Example (iOS / Obj-C):
-                  #
-                  #      // ...
-                  #      static UIColor* fromProto(Color* protocolor) {
-                  #         float red = [protocolor red];
-                  #         float green = [protocolor green];
-                  #         float blue = [protocolor blue];
-                  #         FloatValue* alpha_wrapper = [protocolor alpha];
-                  #         float alpha = 1.0;
-                  #         if (alpha_wrapper != nil) {
-                  #           alpha = [alpha_wrapper value];
-                  #         }
-                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                  #      }
-                  #
-                  #      static Color* toProto(UIColor* color) {
-                  #          CGFloat red, green, blue, alpha;
-                  #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                  #            return nil;
-                  #          }
-                  #          Color* result = [[Color alloc] init];
-                  #          [result setRed:red];
-                  #          [result setGreen:green];
-                  #          [result setBlue:blue];
-                  #          if (alpha <= 0.9999) {
-                  #            [result setAlpha:floatWrapperWithValue(alpha)];
-                  #          }
-                  #          [result autorelease];
-                  #          return result;
-                  #     }
-                  #     // ...
-                  #
-                  #  Example (JavaScript):
-                  #
-                  #     // ...
-                  #
-                  #     var protoToCssColor = function(rgb_color) {
-                  #        var redFrac = rgb_color.red || 0.0;
-                  #        var greenFrac = rgb_color.green || 0.0;
-                  #        var blueFrac = rgb_color.blue || 0.0;
-                  #        var red = Math.floor(redFrac * 255);
-                  #        var green = Math.floor(greenFrac * 255);
-                  #        var blue = Math.floor(blueFrac * 255);
-                  #
-                  #        if (!('alpha' in rgb_color)) {
-                  #           return rgbToCssColor_(red, green, blue);
-                  #        }
-                  #
-                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                  #        var rgbParams = [red, green, blue].join(',');
-                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                  #     };
-                  #
-                  #     var rgbToCssColor_ = function(red, green, blue) {
-                  #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                  #       var hexString = rgbNumber.toString(16);
-                  #       var missingZeros = 6 - hexString.length;
-                  #       var resultBuilder = ['#'];
-                  #       for (var i = 0; i < missingZeros; i++) {
-                  #          resultBuilder.push('0');
-                  #       }
-                  #       resultBuilder.push(hexString);
-                  #       return resultBuilder.join('');
-                  #     };
-                  #
-                  #     // ...
-                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                    # the final pixel color is defined by the equation:
+              "subtitleTextFormat": { # The format of a run of text in a cell. # The subtitle text format.
+                  # Strikethrough and underline are not supported.
+                  # Absent values indicate that the field isn't specified.
+                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
                     #
-                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
                     #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color. This
-                    # uses a wrapper message rather than a simple float scalar so that it is
-                    # possible to distinguish between a default value and the value being unset.
-                    # If omitted, this color object is to be rendered as a solid color
-                    # (as if the alpha value had been explicitly given with a value of 1.0).
-                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "bold": True or False, # True if the text is bold.
+                "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                    # If foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "strikethrough": True or False, # True if the text has a strikethrough.
+                "fontFamily": "A String", # The font family.
+                "fontSize": 42, # The size of the font.
+                "italic": True or False, # True if the text is italicized.
+                "underline": True or False, # True if the text is underlined.
               },
               "maximized": True or False, # True to make a chart fill the entire space in which it's rendered with
                   # minimum padding.  False to use the default padding.
@@ -85751,7 +180563,7 @@
                           # Exactly one dimension must have a length of 1,
                           # and all sources in the list must have the same dimension
                           # with length 1.
-                          # The domain (if it exists) & all series must have the same number
+                          # The domain (if it exists) &amp; all series must have the same number
                           # of source ranges. If using more than one source range, then the source
                           # range at a given offset must be in order and contiguous across the domain
                           # and series.
@@ -85884,14 +180696,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -85921,11 +180733,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -85948,6 +180760,144 @@
                         "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
+                      "colorStyle": { # A color value. # The color of the column.
+                          # If color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "label": "A String", # The label of the column's legend.
                     },
                     "subtotalColumnsStyle": { # Styles for a waterfall chart column. # Styles for all subtotal columns in this series.
@@ -86021,14 +180971,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -86058,11 +181008,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -86085,6 +181035,144 @@
                         "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
+                      "colorStyle": { # A color value. # The color of the column.
+                          # If color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "label": "A String", # The label of the column's legend.
                     },
                     "negativeColumnsStyle": { # Styles for a waterfall chart column. # Styles for all columns in this series with negative values.
@@ -86158,14 +181246,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -86195,11 +181283,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -86222,6 +181310,144 @@
                         "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
+                      "colorStyle": { # A color value. # The color of the column.
+                          # If color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "label": "A String", # The label of the column's legend.
                     },
                     "customSubtotals": [ # Custom subtotal columns appearing in this series. The order in which
@@ -86247,7 +181473,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -86309,6 +181535,8 @@
                   # of charts this supports.
                 "stackedType": "A String", # The stacked type for charts that support vertical stacking.
                     # Applies to Area, Bar, Column, Combo, and Stepped Area charts.
+                "compareMode": "A String", # The behavior of tooltips and data highlighting when hovering on data and
+                    # chart area.
                 "headerCount": 42, # The number of rows or columns in the data that are "headers".
                     # If not set, Google Sheets will guess how many rows are headers based
                     # on the data.
@@ -86319,8 +181547,147 @@
                   { # A single series of data in a chart.
                       # For example, if charting stock prices over time, multiple series may exist,
                       # one for the "Open Price", "High Price", "Low Price" and "Close Price".
-                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color for elements (i.e. bars, lines, points) associated with this
-                        # series.  If empty, a default color is used.
+                    "colorStyle": { # A color value. # The color for elements (such as bars, lines, and points) associated with
+                        # this series.  If empty, a default color is used.
+                        # If color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
+                    "color": { # Represents a color in the RGBA color space. This representation is designed # The color for elements (such as bars, lines, and points) associated with
+                        # this series.  If empty, a default color is used.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
                         # can be trivially provided to the constructor of "java.awt.Color" in Java; it
@@ -86390,14 +181757,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -86427,11 +181794,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -86460,7 +181827,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -86519,6 +181886,12 @@
                         # prices.
                         # It is an error to specify an axis that isn't a valid minor axis
                         # for the chart's type.
+                    "type": "A String", # The type of this series. Valid only if the
+                        # chartType is
+                        # COMBO.
+                        # Different types will change the way the series is visualized.
+                        # Only LINE, AREA,
+                        # and COLUMN are supported.
                     "lineStyle": { # Properties that describe the style of a line. # The line style of this series. Valid only if the
                         # chartType is AREA,
                         # LINE, or SCATTER.
@@ -86528,12 +181901,6 @@
                       "width": 42, # The thickness of the line, in px.
                       "type": "A String", # The dash type of the line.
                     },
-                    "type": "A String", # The type of this series. Valid only if the
-                        # chartType is
-                        # COMBO.
-                        # Different types will change the way the series is visualized.
-                        # Only LINE, AREA,
-                        # and COLUMN are supported.
                   },
                 ],
                 "interpolateNulls": True or False, # If some values in a series are missing, gaps may appear in the chart (e.g,
@@ -86543,8 +181910,8 @@
                 "legendPosition": "A String", # The position of the chart legend.
                 "lineSmoothing": True or False, # Gets whether all lines should be rendered smooth or straight by default.
                     # Applies to Line charts.
-                "compareMode": "A String", # The behavior of tooltips and data highlighting when hovering on data and
-                    # chart area.
+                "threeDimensional": True or False, # True to make the chart 3D.
+                    # Applies to Bar and Column charts.
                 "domains": [ # The domain of data this is charting.
                     # Only a single domain is supported.
                   { # The domain of a chart.
@@ -86557,7 +181924,7 @@
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -86612,13 +181979,10 @@
                   },
                 ],
                 "chartType": "A String", # The type of the chart.
-                "threeDimensional": True or False, # True to make the chart 3D.
-                    # Applies to Bar and Column charts.
                 "axis": [ # The axis on the chart.
                   { # An axis of the chart.
                       # A chart may not have more than one axis per
                       # axis position.
-                    "position": "A String", # The position of this axis.
                     "format": { # The format of a run of text in a cell. # The format of the title.
                         # Only valid if the axis is not associated with the domain.
                         # Absent values indicate that the field isn't specified.
@@ -86692,14 +182056,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -86729,11 +182093,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -86757,21 +182121,168 @@
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
                       "bold": True or False, # True if the text is bold.
+                      "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                          # If foreground_color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
+                      },
                       "strikethrough": True or False, # True if the text has a strikethrough.
                       "fontFamily": "A String", # The font family.
                       "fontSize": 42, # The size of the font.
                       "italic": True or False, # True if the text is italicized.
                       "underline": True or False, # True if the text is underlined.
                     },
-                    "title": "A String", # The title of this axis. If set, this overrides any title inferred
-                        # from headers of the data.
+                    "position": "A String", # The position of this axis.
+                    "viewWindowOptions": { # The options that define a "view window" for a chart (such as the visible # The view window options for this axis.
+                        # values in an axis).
+                      "viewWindowMin": 3.14, # The minimum numeric value to be shown in this view window. If unset, will
+                          # automatically determine a minimum value that looks good for the data.
+                      "viewWindowMax": 3.14, # The maximum numeric value to be shown in this view window. If unset, will
+                          # automatically determine a maximum value that looks good for the data.
+                      "viewWindowMode": "A String", # The view window's mode.
+                    },
                     "titleTextPosition": { # Position settings for text. # The axis title text position.
                       "horizontalAlignment": "A String", # Horizontal alignment setting for the piece of text.
                     },
+                    "title": "A String", # The title of this axis. If set, this overrides any title inferred
+                        # from headers of the data.
                   },
                 ],
               },
-              "histogramChart": { # A <a href="/chart/interactive/docs/gallery/histogram">histogram chart</a>. # A histogram chart specification.
+              "histogramChart": { # A &lt;a href="/chart/interactive/docs/gallery/histogram"&gt;histogram chart&lt;/a&gt;. # A histogram chart specification.
                   # A histogram chart groups data items into bins, displaying each bin as a
                   # column of stacked items.  Histograms are used to display the distribution
                   # of a dataset.  Each column of items represents a range into which those
@@ -86858,14 +182369,14 @@
                         #
                         #      static Color* toProto(UIColor* color) {
                         #          CGFloat red, green, blue, alpha;
-                        #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                         #            return nil;
                         #          }
                         #          Color* result = [[Color alloc] init];
                         #          [result setRed:red];
                         #          [result setGreen:green];
                         #          [result setBlue:blue];
-                        #          if (alpha <= 0.9999) {
+                        #          if (alpha &lt;= 0.9999) {
                         #            [result setAlpha:floatWrapperWithValue(alpha)];
                         #          }
                         #          [result autorelease];
@@ -86895,11 +182406,11 @@
                         #     };
                         #
                         #     var rgbToCssColor_ = function(red, green, blue) {
-                        #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                         #       var hexString = rgbNumber.toString(16);
                         #       var missingZeros = 6 - hexString.length;
                         #       var resultBuilder = ['#'];
-                        #       for (var i = 0; i < missingZeros; i++) {
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
                         #          resultBuilder.push('0');
                         #       }
                         #       resultBuilder.push(hexString);
@@ -86922,13 +182433,152 @@
                       "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                       "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                     },
+                    "barColorStyle": { # A color value. # The color of the column representing this series in each bucket.
+                        # This field is optional.
+                        # If bar_color is also set, this field takes precedence.
+                      "themeColor": "A String", # Theme color.
+                      "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                          # for simplicity of conversion to/from color representations in various
+                          # languages over compactness; for example, the fields of this representation
+                          # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                          # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                          # method in iOS; and, with just a little work, it can be easily formatted into
+                          # a CSS "rgba()" string in JavaScript, as well.
+                          #
+                          # Note: this proto does not carry information about the absolute color space
+                          # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                          # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                          # space.
+                          #
+                          # Example (Java):
+                          #
+                          #      import com.google.type.Color;
+                          #
+                          #      // ...
+                          #      public static java.awt.Color fromProto(Color protocolor) {
+                          #        float alpha = protocolor.hasAlpha()
+                          #            ? protocolor.getAlpha().getValue()
+                          #            : 1.0;
+                          #
+                          #        return new java.awt.Color(
+                          #            protocolor.getRed(),
+                          #            protocolor.getGreen(),
+                          #            protocolor.getBlue(),
+                          #            alpha);
+                          #      }
+                          #
+                          #      public static Color toProto(java.awt.Color color) {
+                          #        float red = (float) color.getRed();
+                          #        float green = (float) color.getGreen();
+                          #        float blue = (float) color.getBlue();
+                          #        float denominator = 255.0;
+                          #        Color.Builder resultBuilder =
+                          #            Color
+                          #                .newBuilder()
+                          #                .setRed(red / denominator)
+                          #                .setGreen(green / denominator)
+                          #                .setBlue(blue / denominator);
+                          #        int alpha = color.getAlpha();
+                          #        if (alpha != 255) {
+                          #          result.setAlpha(
+                          #              FloatValue
+                          #                  .newBuilder()
+                          #                  .setValue(((float) alpha) / denominator)
+                          #                  .build());
+                          #        }
+                          #        return resultBuilder.build();
+                          #      }
+                          #      // ...
+                          #
+                          # Example (iOS / Obj-C):
+                          #
+                          #      // ...
+                          #      static UIColor* fromProto(Color* protocolor) {
+                          #         float red = [protocolor red];
+                          #         float green = [protocolor green];
+                          #         float blue = [protocolor blue];
+                          #         FloatValue* alpha_wrapper = [protocolor alpha];
+                          #         float alpha = 1.0;
+                          #         if (alpha_wrapper != nil) {
+                          #           alpha = [alpha_wrapper value];
+                          #         }
+                          #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                          #      }
+                          #
+                          #      static Color* toProto(UIColor* color) {
+                          #          CGFloat red, green, blue, alpha;
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                          #            return nil;
+                          #          }
+                          #          Color* result = [[Color alloc] init];
+                          #          [result setRed:red];
+                          #          [result setGreen:green];
+                          #          [result setBlue:blue];
+                          #          if (alpha &lt;= 0.9999) {
+                          #            [result setAlpha:floatWrapperWithValue(alpha)];
+                          #          }
+                          #          [result autorelease];
+                          #          return result;
+                          #     }
+                          #     // ...
+                          #
+                          #  Example (JavaScript):
+                          #
+                          #     // ...
+                          #
+                          #     var protoToCssColor = function(rgb_color) {
+                          #        var redFrac = rgb_color.red || 0.0;
+                          #        var greenFrac = rgb_color.green || 0.0;
+                          #        var blueFrac = rgb_color.blue || 0.0;
+                          #        var red = Math.floor(redFrac * 255);
+                          #        var green = Math.floor(greenFrac * 255);
+                          #        var blue = Math.floor(blueFrac * 255);
+                          #
+                          #        if (!('alpha' in rgb_color)) {
+                          #           return rgbToCssColor_(red, green, blue);
+                          #        }
+                          #
+                          #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                          #        var rgbParams = [red, green, blue].join(',');
+                          #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                          #     };
+                          #
+                          #     var rgbToCssColor_ = function(red, green, blue) {
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                          #       var hexString = rgbNumber.toString(16);
+                          #       var missingZeros = 6 - hexString.length;
+                          #       var resultBuilder = ['#'];
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
+                          #          resultBuilder.push('0');
+                          #       }
+                          #       resultBuilder.push(hexString);
+                          #       return resultBuilder.join('');
+                          #     };
+                          #
+                          #     // ...
+                        "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                        "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                            # the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color. This
+                            # uses a wrapper message rather than a simple float scalar so that it is
+                            # possible to distinguish between a default value and the value being unset.
+                            # If omitted, this color object is to be rendered as a solid color
+                            # (as if the alpha value had been explicitly given with a value of 1.0).
+                        "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                        "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                      },
+                    },
                     "data": { # The data included in a domain or series. # The data for this histogram series.
                       "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
                         "sources": [ # The ranges of data for a series or domain.
                             # Exactly one dimension must have a length of 1,
                             # and all sources in the list must have the same dimension
                             # with length 1.
-                            # The domain (if it exists) & all series must have the same number
+                            # The domain (if it exists) &amp; all series must have the same number
                             # of source ranges. If using more than one source range, then the source
                             # range at a given offset must be in order and contiguous across the domain
                             # and series.
@@ -86991,141 +182641,9 @@
                     # Cannot be negative.
                     # This field is optional.
               },
-              "bubbleChart": { # A <a href="/chart/interactive/docs/gallery/bubblechart">bubble chart</a>. # A bubble chart specification.
-                "bubbleBorderColor": { # Represents a color in the RGBA color space. This representation is designed # The bubble border color.
-                    # for simplicity of conversion to/from color representations in various
-                    # languages over compactness; for example, the fields of this representation
-                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                    # method in iOS; and, with just a little work, it can be easily formatted into
-                    # a CSS "rgba()" string in JavaScript, as well.
-                    #
-                    # Note: this proto does not carry information about the absolute color space
-                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                    # space.
-                    #
-                    # Example (Java):
-                    #
-                    #      import com.google.type.Color;
-                    #
-                    #      // ...
-                    #      public static java.awt.Color fromProto(Color protocolor) {
-                    #        float alpha = protocolor.hasAlpha()
-                    #            ? protocolor.getAlpha().getValue()
-                    #            : 1.0;
-                    #
-                    #        return new java.awt.Color(
-                    #            protocolor.getRed(),
-                    #            protocolor.getGreen(),
-                    #            protocolor.getBlue(),
-                    #            alpha);
-                    #      }
-                    #
-                    #      public static Color toProto(java.awt.Color color) {
-                    #        float red = (float) color.getRed();
-                    #        float green = (float) color.getGreen();
-                    #        float blue = (float) color.getBlue();
-                    #        float denominator = 255.0;
-                    #        Color.Builder resultBuilder =
-                    #            Color
-                    #                .newBuilder()
-                    #                .setRed(red / denominator)
-                    #                .setGreen(green / denominator)
-                    #                .setBlue(blue / denominator);
-                    #        int alpha = color.getAlpha();
-                    #        if (alpha != 255) {
-                    #          result.setAlpha(
-                    #              FloatValue
-                    #                  .newBuilder()
-                    #                  .setValue(((float) alpha) / denominator)
-                    #                  .build());
-                    #        }
-                    #        return resultBuilder.build();
-                    #      }
-                    #      // ...
-                    #
-                    # Example (iOS / Obj-C):
-                    #
-                    #      // ...
-                    #      static UIColor* fromProto(Color* protocolor) {
-                    #         float red = [protocolor red];
-                    #         float green = [protocolor green];
-                    #         float blue = [protocolor blue];
-                    #         FloatValue* alpha_wrapper = [protocolor alpha];
-                    #         float alpha = 1.0;
-                    #         if (alpha_wrapper != nil) {
-                    #           alpha = [alpha_wrapper value];
-                    #         }
-                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                    #      }
-                    #
-                    #      static Color* toProto(UIColor* color) {
-                    #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                    #            return nil;
-                    #          }
-                    #          Color* result = [[Color alloc] init];
-                    #          [result setRed:red];
-                    #          [result setGreen:green];
-                    #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
-                    #            [result setAlpha:floatWrapperWithValue(alpha)];
-                    #          }
-                    #          [result autorelease];
-                    #          return result;
-                    #     }
-                    #     // ...
-                    #
-                    #  Example (JavaScript):
-                    #
-                    #     // ...
-                    #
-                    #     var protoToCssColor = function(rgb_color) {
-                    #        var redFrac = rgb_color.red || 0.0;
-                    #        var greenFrac = rgb_color.green || 0.0;
-                    #        var blueFrac = rgb_color.blue || 0.0;
-                    #        var red = Math.floor(redFrac * 255);
-                    #        var green = Math.floor(greenFrac * 255);
-                    #        var blue = Math.floor(blueFrac * 255);
-                    #
-                    #        if (!('alpha' in rgb_color)) {
-                    #           return rgbToCssColor_(red, green, blue);
-                    #        }
-                    #
-                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                    #        var rgbParams = [red, green, blue].join(',');
-                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                    #     };
-                    #
-                    #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                    #       var hexString = rgbNumber.toString(16);
-                    #       var missingZeros = 6 - hexString.length;
-                    #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
-                    #          resultBuilder.push('0');
-                    #       }
-                    #       resultBuilder.push(hexString);
-                    #       return resultBuilder.join('');
-                    #     };
-                    #
-                    #     // ...
-                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                      # the final pixel color is defined by the equation:
-                      #
-                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                      #
-                      # This means that a value of 1.0 corresponds to a solid color, whereas
-                      # a value of 0.0 corresponds to a completely transparent color. This
-                      # uses a wrapper message rather than a simple float scalar so that it is
-                      # possible to distinguish between a default value and the value being unset.
-                      # If omitted, this color object is to be rendered as a solid color
-                      # (as if the alpha value had been explicitly given with a value of 1.0).
-                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                },
+              "bubbleChart": { # A &lt;a href="/chart/interactive/docs/gallery/bubblechart"&gt;bubble chart&lt;/a&gt;. # A bubble chart specification.
+                "bubbleOpacity": 3.14, # The opacity of the bubbles between 0 and 1.0.
+                    # 0 is fully transparent and 1 is fully opaque.
                 "domain": { # The data included in a domain or series. # The data containing the bubble x-values.  These values locate the bubbles
                     # in the chart horizontally.
                   "sourceRange": { # Source ranges for a chart. # The source ranges of the data.
@@ -87133,7 +182651,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -87258,14 +182776,14 @@
                       #
                       #      static Color* toProto(UIColor* color) {
                       #          CGFloat red, green, blue, alpha;
-                      #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                       #            return nil;
                       #          }
                       #          Color* result = [[Color alloc] init];
                       #          [result setRed:red];
                       #          [result setGreen:green];
                       #          [result setBlue:blue];
-                      #          if (alpha <= 0.9999) {
+                      #          if (alpha &lt;= 0.9999) {
                       #            [result setAlpha:floatWrapperWithValue(alpha)];
                       #          }
                       #          [result autorelease];
@@ -87295,11 +182813,11 @@
                       #     };
                       #
                       #     var rgbToCssColor_ = function(red, green, blue) {
-                      #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                       #       var hexString = rgbNumber.toString(16);
                       #       var missingZeros = 6 - hexString.length;
                       #       var resultBuilder = ['#'];
-                      #       for (var i = 0; i < missingZeros; i++) {
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
                       #          resultBuilder.push('0');
                       #       }
                       #       resultBuilder.push(hexString);
@@ -87323,6 +182841,144 @@
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
                   "bold": True or False, # True if the text is bold.
+                  "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                      # If foreground_color is also set, this field takes precedence.
+                    "themeColor": "A String", # Theme color.
+                    "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                        # for simplicity of conversion to/from color representations in various
+                        # languages over compactness; for example, the fields of this representation
+                        # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                        # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                        # method in iOS; and, with just a little work, it can be easily formatted into
+                        # a CSS "rgba()" string in JavaScript, as well.
+                        #
+                        # Note: this proto does not carry information about the absolute color space
+                        # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                        # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                        # space.
+                        #
+                        # Example (Java):
+                        #
+                        #      import com.google.type.Color;
+                        #
+                        #      // ...
+                        #      public static java.awt.Color fromProto(Color protocolor) {
+                        #        float alpha = protocolor.hasAlpha()
+                        #            ? protocolor.getAlpha().getValue()
+                        #            : 1.0;
+                        #
+                        #        return new java.awt.Color(
+                        #            protocolor.getRed(),
+                        #            protocolor.getGreen(),
+                        #            protocolor.getBlue(),
+                        #            alpha);
+                        #      }
+                        #
+                        #      public static Color toProto(java.awt.Color color) {
+                        #        float red = (float) color.getRed();
+                        #        float green = (float) color.getGreen();
+                        #        float blue = (float) color.getBlue();
+                        #        float denominator = 255.0;
+                        #        Color.Builder resultBuilder =
+                        #            Color
+                        #                .newBuilder()
+                        #                .setRed(red / denominator)
+                        #                .setGreen(green / denominator)
+                        #                .setBlue(blue / denominator);
+                        #        int alpha = color.getAlpha();
+                        #        if (alpha != 255) {
+                        #          result.setAlpha(
+                        #              FloatValue
+                        #                  .newBuilder()
+                        #                  .setValue(((float) alpha) / denominator)
+                        #                  .build());
+                        #        }
+                        #        return resultBuilder.build();
+                        #      }
+                        #      // ...
+                        #
+                        # Example (iOS / Obj-C):
+                        #
+                        #      // ...
+                        #      static UIColor* fromProto(Color* protocolor) {
+                        #         float red = [protocolor red];
+                        #         float green = [protocolor green];
+                        #         float blue = [protocolor blue];
+                        #         FloatValue* alpha_wrapper = [protocolor alpha];
+                        #         float alpha = 1.0;
+                        #         if (alpha_wrapper != nil) {
+                        #           alpha = [alpha_wrapper value];
+                        #         }
+                        #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                        #      }
+                        #
+                        #      static Color* toProto(UIColor* color) {
+                        #          CGFloat red, green, blue, alpha;
+                        #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                        #            return nil;
+                        #          }
+                        #          Color* result = [[Color alloc] init];
+                        #          [result setRed:red];
+                        #          [result setGreen:green];
+                        #          [result setBlue:blue];
+                        #          if (alpha &lt;= 0.9999) {
+                        #            [result setAlpha:floatWrapperWithValue(alpha)];
+                        #          }
+                        #          [result autorelease];
+                        #          return result;
+                        #     }
+                        #     // ...
+                        #
+                        #  Example (JavaScript):
+                        #
+                        #     // ...
+                        #
+                        #     var protoToCssColor = function(rgb_color) {
+                        #        var redFrac = rgb_color.red || 0.0;
+                        #        var greenFrac = rgb_color.green || 0.0;
+                        #        var blueFrac = rgb_color.blue || 0.0;
+                        #        var red = Math.floor(redFrac * 255);
+                        #        var green = Math.floor(greenFrac * 255);
+                        #        var blue = Math.floor(blueFrac * 255);
+                        #
+                        #        if (!('alpha' in rgb_color)) {
+                        #           return rgbToCssColor_(red, green, blue);
+                        #        }
+                        #
+                        #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                        #        var rgbParams = [red, green, blue].join(',');
+                        #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                        #     };
+                        #
+                        #     var rgbToCssColor_ = function(red, green, blue) {
+                        #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                        #       var hexString = rgbNumber.toString(16);
+                        #       var missingZeros = 6 - hexString.length;
+                        #       var resultBuilder = ['#'];
+                        #       for (var i = 0; i &lt; missingZeros; i++) {
+                        #          resultBuilder.push('0');
+                        #       }
+                        #       resultBuilder.push(hexString);
+                        #       return resultBuilder.join('');
+                        #     };
+                        #
+                        #     // ...
+                      "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                      "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                          # the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color. This
+                          # uses a wrapper message rather than a simple float scalar so that it is
+                          # possible to distinguish between a default value and the value being unset.
+                          # If omitted, this color object is to be rendered as a solid color
+                          # (as if the alpha value had been explicitly given with a value of 1.0).
+                      "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                      "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                    },
+                  },
                   "strikethrough": True or False, # True if the text has a strikethrough.
                   "fontFamily": "A String", # The font family.
                   "fontSize": 42, # The size of the font.
@@ -87336,7 +182992,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -87388,11 +183044,281 @@
                     ],
                   },
                 },
+                "bubbleBorderColorStyle": { # A color value. # The bubble border color.
+                    # If bubble_border_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "legendPosition": "A String", # Where the legend of the chart should be drawn.
                 "bubbleMaxRadiusSize": 42, # The max radius size of the bubbles, in pixels.
                     # If specified, the field must be a positive value.
-                "bubbleOpacity": 3.14, # The opacity of the bubbles between 0 and 1.0.
-                    # 0 is fully transparent and 1 is fully opaque.
+                "bubbleBorderColor": { # Represents a color in the RGBA color space. This representation is designed # The bubble border color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
                 "groupIds": { # The data included in a domain or series. # The data containing the bubble group IDs. All bubbles with the same group
                     # ID are drawn in the same color. If bubble_sizes is specified then
                     # this field must also be specified but may contain blank values.
@@ -87402,7 +183328,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -87463,7 +183389,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -87521,7 +183447,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -87576,7 +183502,7 @@
                 "bubbleMinRadiusSize": 42, # The minimum radius size of the bubbles, in pixels.
                     # If specific, the field must be a positive value.
               },
-              "orgChart": { # An <a href="/chart/interactive/docs/gallery/orgchart">org chart</a>. # An org chart specification.
+              "orgChart": { # An &lt;a href="/chart/interactive/docs/gallery/orgchart"&gt;org chart&lt;/a&gt;. # An org chart specification.
                   # Org charts require a unique set of labels in labels and may
                   # optionally include parent_labels and tooltips.
                   # parent_labels contain, for each node, the label identifying the parent
@@ -87595,7 +183521,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -87656,7 +183582,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -87778,14 +183704,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -87815,11 +183741,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -87849,7 +183775,7 @@
                         # Exactly one dimension must have a length of 1,
                         # and all sources in the list must have the same dimension
                         # with length 1.
-                        # The domain (if it exists) & all series must have the same number
+                        # The domain (if it exists) &amp; all series must have the same number
                         # of source ranges. If using more than one source range, then the source
                         # range at a given offset must be in order and contiguous across the domain
                         # and series.
@@ -87971,14 +183897,14 @@
                     #
                     #      static Color* toProto(UIColor* color) {
                     #          CGFloat red, green, blue, alpha;
-                    #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                     #            return nil;
                     #          }
                     #          Color* result = [[Color alloc] init];
                     #          [result setRed:red];
                     #          [result setGreen:green];
                     #          [result setBlue:blue];
-                    #          if (alpha <= 0.9999) {
+                    #          if (alpha &lt;= 0.9999) {
                     #            [result setAlpha:floatWrapperWithValue(alpha)];
                     #          }
                     #          [result autorelease];
@@ -88008,11 +183934,11 @@
                     #     };
                     #
                     #     var rgbToCssColor_ = function(red, green, blue) {
-                    #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                     #       var hexString = rgbNumber.toString(16);
                     #       var missingZeros = 6 - hexString.length;
                     #       var resultBuilder = ['#'];
-                    #       for (var i = 0; i < missingZeros; i++) {
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
                     #          resultBuilder.push('0');
                     #       }
                     #       resultBuilder.push(hexString);
@@ -88035,11 +183961,2986 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
+                "nodeColorStyle": { # A color value. # The color of the org chart nodes.
+                    # If node_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "selectedNodeColorStyle": { # A color value. # The color of the selected org chart nodes.
+                    # If selected_node_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
                 "nodeSize": "A String", # The size of the org chart nodes.
               },
             },
           },
         ],
+        "filterViews": [ # The filter views in this sheet.
+          { # A filter view.
+            "title": "A String", # The name of the filter view.
+            "namedRangeId": "A String", # The named range this filter view is backed by, if any.
+                #
+                # When writing, only one of range or named_range_id
+                # may be set.
+            "filterViewId": 42, # The ID of the filter view.
+            "range": { # A range on a sheet. # The range this filter view covers.
+                #
+                # When writing, only one of range or named_range_id
+                # may be set.
+                # All indexes are zero-based.
+                # Indexes are half open, e.g the start index is inclusive
+                # and the end index is exclusive -- [start_index, end_index).
+                # Missing indexes indicate the range is unbounded on that side.
+                #
+                # For example, if `"Sheet1"` is sheet ID 0, then:
+                #
+                #   `Sheet1!A1:A1 == sheet_id: 0,
+                #                   start_row_index: 0, end_row_index: 1,
+                #                   start_column_index: 0, end_column_index: 1`
+                #
+                #   `Sheet1!A3:B4 == sheet_id: 0,
+                #                   start_row_index: 2, end_row_index: 4,
+                #                   start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A:B == sheet_id: 0,
+                #                 start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A5:B == sheet_id: 0,
+                #                  start_row_index: 4,
+                #                  start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1 == sheet_id:0`
+                #
+                # The start index must always be less than or equal to the end index.
+                # If the start index equals the end index, then the range is empty.
+                # Empty ranges are typically not meaningful and are usually rendered in the
+                # UI as `#REF!`.
+              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "sheetId": 42, # The sheet this range is on.
+              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            },
+            "sortSpecs": [ # The sort order per column. Later specifications are used when values
+                # are equal in the earlier specifications.
+              { # A sort order associated with a specific column or row.
+                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to sort by; cells with this foreground color are
+                    # sorted to the top. Mutually exclusive with background_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to sort by; cells with this fill color are sorted
+                    # to the top. Mutually exclusive with foreground_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "foregroundColorStyle": { # A color value. # The foreground color to sort by; cells with this foreground color are
+                    # sorted to the top. Mutually exclusive with background_color, and must
+                    # be an RGB-type color. If foreground_color is also set, this field takes
+                    # precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "backgroundColorStyle": { # A color value. # The background fill color to sort by; cells with this fill color are sorted
+                    # to the top. Mutually exclusive with foreground_color, and must be an
+                    # RGB-type color. If background_color is also set, this field takes
+                    # precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "sortOrder": "A String", # The order data should be sorted.
+                "dimensionIndex": 42, # The dimension the sort should be applied to.
+              },
+            ],
+            "criteria": { # The criteria for showing/hiding values per column.
+                # The map's key is the column index, and the value is the criteria for
+                # that column.
+              "a_key": { # Criteria for showing/hiding rows in a filter or filter view.
+                "visibleBackgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to filter by; only cells with this fill color are
+                    # shown. Mutually exclusive with visible_foreground_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "hiddenValues": [ # Values that should be hidden.
+                  "A String",
+                ],
+                "visibleBackgroundColorStyle": { # A color value. # The background fill color to filter by; only cells with this fill color are
+                    # shown. This field is mutually exclusive with visible_foreground_color,
+                    # and must be set to an RGB-type color. If visible_background_color is
+                    # also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColorStyle": { # A color value. # The foreground color to filter by; only cells with this foreground color
+                    # are shown. This field is mutually exclusive with
+                    # visible_background_color, and must be set to an RGB-type color. If
+                    # visible_foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to filter by; only cells with this foreground color
+                    # are shown. Mutually exclusive with visible_background_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
+                    # (This does not override hidden_values -- if a value is listed there,
+                    #  it will still be hidden.)
+                    # BooleanConditions are used by conditional formatting,
+                    # data validation, and the criteria in filters.
+                  "values": [ # The values of the condition. The number of supported values depends
+                      # on the condition type.  Some support zero values,
+                      # others one or two values,
+                      # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                    { # The value of the condition.
+                      "relativeDate": "A String", # A relative date (based on the current date).
+                          # Valid only if the type is
+                          # DATE_BEFORE,
+                          # DATE_AFTER,
+                          # DATE_ON_OR_BEFORE or
+                          # DATE_ON_OR_AFTER.
+                          #
+                          # Relative dates are not supported in data validation.
+                          # They are supported only in conditional formatting and
+                          # conditional filters.
+                      "userEnteredValue": "A String", # A value the condition is based on.
+                          # The value is parsed as if the user typed into a cell.
+                          # Formulas are supported (and must begin with an `=` or a '+').
+                    },
+                  ],
+                  "type": "A String", # The type of condition.
+                },
+              },
+            },
+          },
+        ],
+        "slicers": [ # The slicers on this sheet.
+          { # A slicer in a sheet.
+            "position": { # The position of an embedded object such as a chart. # The position of the slicer. Note that slicer can be positioned only on
+                # existing sheet. Also, width and height of slicer can be automatically
+                # adjusted to keep it within permitted limits.
+              "newSheet": True or False, # If true, the embedded object is put on a new sheet whose ID
+                  # is chosen for you. Used only when writing.
+              "sheetId": 42, # The sheet this is on. Set only if the embedded object
+                  # is on its own sheet. Must be non-negative.
+              "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid.
+                "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to.
+                    # All indexes are zero-based.
+                  "rowIndex": 42, # The row index of the coordinate.
+                  "columnIndex": 42, # The column index of the coordinate.
+                  "sheetId": 42, # The sheet this coordinate is on.
+                },
+                "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
+                    # from the anchor cell.
+                "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
+                "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
+                    # from the anchor cell.
+                "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
+              },
+            },
+            "spec": { # The specifications of a slicer. # The specification of the slicer.
+              "backgroundColorStyle": { # A color value. # The background color of the slicer.
+                  # If background_color is also set, this field takes precedence.
+                "themeColor": "A String", # Theme color.
+                "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+              },
+              "dataRange": { # A range on a sheet. # The data range of the slicer.
+                  # All indexes are zero-based.
+                  # Indexes are half open, e.g the start index is inclusive
+                  # and the end index is exclusive -- [start_index, end_index).
+                  # Missing indexes indicate the range is unbounded on that side.
+                  #
+                  # For example, if `"Sheet1"` is sheet ID 0, then:
+                  #
+                  #   `Sheet1!A1:A1 == sheet_id: 0,
+                  #                   start_row_index: 0, end_row_index: 1,
+                  #                   start_column_index: 0, end_column_index: 1`
+                  #
+                  #   `Sheet1!A3:B4 == sheet_id: 0,
+                  #                   start_row_index: 2, end_row_index: 4,
+                  #                   start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1!A:B == sheet_id: 0,
+                  #                 start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1!A5:B == sheet_id: 0,
+                  #                  start_row_index: 4,
+                  #                  start_column_index: 0, end_column_index: 2`
+                  #
+                  #   `Sheet1 == sheet_id:0`
+                  #
+                  # The start index must always be less than or equal to the end index.
+                  # If the start index equals the end index, then the range is empty.
+                  # Empty ranges are typically not meaningful and are usually rendered in the
+                  # UI as `#REF!`.
+                "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "sheetId": 42, # The sheet this range is on.
+                "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              },
+              "title": "A String", # The title of the slicer.
+              "applyToPivotTables": True or False, # True if the filter should apply to pivot tables.
+                  # If not set, default to `True`.
+              "columnIndex": 42, # The column index in the data table on which the filter is applied to.
+              "horizontalAlignment": "A String", # The horizontal alignment of title in the slicer.
+                  # If unspecified, defaults to `LEFT`
+              "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the slicer.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+              "textFormat": { # The format of a run of text in a cell. # The text format of title in the slicer.
+                  # Absent values indicate that the field isn't specified.
+                "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "bold": True or False, # True if the text is bold.
+                "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                    # If foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "strikethrough": True or False, # True if the text has a strikethrough.
+                "fontFamily": "A String", # The font family.
+                "fontSize": 42, # The size of the font.
+                "italic": True or False, # True if the text is italicized.
+                "underline": True or False, # True if the text is underlined.
+              },
+              "filterCriteria": { # Criteria for showing/hiding rows in a filter or filter view. # The filtering criteria of the slicer.
+                "visibleBackgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background fill color to filter by; only cells with this fill color are
+                    # shown. Mutually exclusive with visible_foreground_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "hiddenValues": [ # Values that should be hidden.
+                  "A String",
+                ],
+                "visibleBackgroundColorStyle": { # A color value. # The background fill color to filter by; only cells with this fill color are
+                    # shown. This field is mutually exclusive with visible_foreground_color,
+                    # and must be set to an RGB-type color. If visible_background_color is
+                    # also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColorStyle": { # A color value. # The foreground color to filter by; only cells with this foreground color
+                    # are shown. This field is mutually exclusive with
+                    # visible_background_color, and must be set to an RGB-type color. If
+                    # visible_foreground_color is also set, this field takes precedence.
+                  "themeColor": "A String", # Theme color.
+                  "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                      # for simplicity of conversion to/from color representations in various
+                      # languages over compactness; for example, the fields of this representation
+                      # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                      # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                      # method in iOS; and, with just a little work, it can be easily formatted into
+                      # a CSS "rgba()" string in JavaScript, as well.
+                      #
+                      # Note: this proto does not carry information about the absolute color space
+                      # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                      # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                      # space.
+                      #
+                      # Example (Java):
+                      #
+                      #      import com.google.type.Color;
+                      #
+                      #      // ...
+                      #      public static java.awt.Color fromProto(Color protocolor) {
+                      #        float alpha = protocolor.hasAlpha()
+                      #            ? protocolor.getAlpha().getValue()
+                      #            : 1.0;
+                      #
+                      #        return new java.awt.Color(
+                      #            protocolor.getRed(),
+                      #            protocolor.getGreen(),
+                      #            protocolor.getBlue(),
+                      #            alpha);
+                      #      }
+                      #
+                      #      public static Color toProto(java.awt.Color color) {
+                      #        float red = (float) color.getRed();
+                      #        float green = (float) color.getGreen();
+                      #        float blue = (float) color.getBlue();
+                      #        float denominator = 255.0;
+                      #        Color.Builder resultBuilder =
+                      #            Color
+                      #                .newBuilder()
+                      #                .setRed(red / denominator)
+                      #                .setGreen(green / denominator)
+                      #                .setBlue(blue / denominator);
+                      #        int alpha = color.getAlpha();
+                      #        if (alpha != 255) {
+                      #          result.setAlpha(
+                      #              FloatValue
+                      #                  .newBuilder()
+                      #                  .setValue(((float) alpha) / denominator)
+                      #                  .build());
+                      #        }
+                      #        return resultBuilder.build();
+                      #      }
+                      #      // ...
+                      #
+                      # Example (iOS / Obj-C):
+                      #
+                      #      // ...
+                      #      static UIColor* fromProto(Color* protocolor) {
+                      #         float red = [protocolor red];
+                      #         float green = [protocolor green];
+                      #         float blue = [protocolor blue];
+                      #         FloatValue* alpha_wrapper = [protocolor alpha];
+                      #         float alpha = 1.0;
+                      #         if (alpha_wrapper != nil) {
+                      #           alpha = [alpha_wrapper value];
+                      #         }
+                      #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                      #      }
+                      #
+                      #      static Color* toProto(UIColor* color) {
+                      #          CGFloat red, green, blue, alpha;
+                      #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                      #            return nil;
+                      #          }
+                      #          Color* result = [[Color alloc] init];
+                      #          [result setRed:red];
+                      #          [result setGreen:green];
+                      #          [result setBlue:blue];
+                      #          if (alpha &lt;= 0.9999) {
+                      #            [result setAlpha:floatWrapperWithValue(alpha)];
+                      #          }
+                      #          [result autorelease];
+                      #          return result;
+                      #     }
+                      #     // ...
+                      #
+                      #  Example (JavaScript):
+                      #
+                      #     // ...
+                      #
+                      #     var protoToCssColor = function(rgb_color) {
+                      #        var redFrac = rgb_color.red || 0.0;
+                      #        var greenFrac = rgb_color.green || 0.0;
+                      #        var blueFrac = rgb_color.blue || 0.0;
+                      #        var red = Math.floor(redFrac * 255);
+                      #        var green = Math.floor(greenFrac * 255);
+                      #        var blue = Math.floor(blueFrac * 255);
+                      #
+                      #        if (!('alpha' in rgb_color)) {
+                      #           return rgbToCssColor_(red, green, blue);
+                      #        }
+                      #
+                      #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                      #        var rgbParams = [red, green, blue].join(',');
+                      #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                      #     };
+                      #
+                      #     var rgbToCssColor_ = function(red, green, blue) {
+                      #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                      #       var hexString = rgbNumber.toString(16);
+                      #       var missingZeros = 6 - hexString.length;
+                      #       var resultBuilder = ['#'];
+                      #       for (var i = 0; i &lt; missingZeros; i++) {
+                      #          resultBuilder.push('0');
+                      #       }
+                      #       resultBuilder.push(hexString);
+                      #       return resultBuilder.join('');
+                      #     };
+                      #
+                      #     // ...
+                    "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                    "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                        # the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color. This
+                        # uses a wrapper message rather than a simple float scalar so that it is
+                        # possible to distinguish between a default value and the value being unset.
+                        # If omitted, this color object is to be rendered as a solid color
+                        # (as if the alpha value had been explicitly given with a value of 1.0).
+                    "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                    "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  },
+                },
+                "visibleForegroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color to filter by; only cells with this foreground color
+                    # are shown. Mutually exclusive with visible_background_color.
+                    # for simplicity of conversion to/from color representations in various
+                    # languages over compactness; for example, the fields of this representation
+                    # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                    # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                    # method in iOS; and, with just a little work, it can be easily formatted into
+                    # a CSS "rgba()" string in JavaScript, as well.
+                    #
+                    # Note: this proto does not carry information about the absolute color space
+                    # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                    # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                    # space.
+                    #
+                    # Example (Java):
+                    #
+                    #      import com.google.type.Color;
+                    #
+                    #      // ...
+                    #      public static java.awt.Color fromProto(Color protocolor) {
+                    #        float alpha = protocolor.hasAlpha()
+                    #            ? protocolor.getAlpha().getValue()
+                    #            : 1.0;
+                    #
+                    #        return new java.awt.Color(
+                    #            protocolor.getRed(),
+                    #            protocolor.getGreen(),
+                    #            protocolor.getBlue(),
+                    #            alpha);
+                    #      }
+                    #
+                    #      public static Color toProto(java.awt.Color color) {
+                    #        float red = (float) color.getRed();
+                    #        float green = (float) color.getGreen();
+                    #        float blue = (float) color.getBlue();
+                    #        float denominator = 255.0;
+                    #        Color.Builder resultBuilder =
+                    #            Color
+                    #                .newBuilder()
+                    #                .setRed(red / denominator)
+                    #                .setGreen(green / denominator)
+                    #                .setBlue(blue / denominator);
+                    #        int alpha = color.getAlpha();
+                    #        if (alpha != 255) {
+                    #          result.setAlpha(
+                    #              FloatValue
+                    #                  .newBuilder()
+                    #                  .setValue(((float) alpha) / denominator)
+                    #                  .build());
+                    #        }
+                    #        return resultBuilder.build();
+                    #      }
+                    #      // ...
+                    #
+                    # Example (iOS / Obj-C):
+                    #
+                    #      // ...
+                    #      static UIColor* fromProto(Color* protocolor) {
+                    #         float red = [protocolor red];
+                    #         float green = [protocolor green];
+                    #         float blue = [protocolor blue];
+                    #         FloatValue* alpha_wrapper = [protocolor alpha];
+                    #         float alpha = 1.0;
+                    #         if (alpha_wrapper != nil) {
+                    #           alpha = [alpha_wrapper value];
+                    #         }
+                    #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                    #      }
+                    #
+                    #      static Color* toProto(UIColor* color) {
+                    #          CGFloat red, green, blue, alpha;
+                    #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                    #            return nil;
+                    #          }
+                    #          Color* result = [[Color alloc] init];
+                    #          [result setRed:red];
+                    #          [result setGreen:green];
+                    #          [result setBlue:blue];
+                    #          if (alpha &lt;= 0.9999) {
+                    #            [result setAlpha:floatWrapperWithValue(alpha)];
+                    #          }
+                    #          [result autorelease];
+                    #          return result;
+                    #     }
+                    #     // ...
+                    #
+                    #  Example (JavaScript):
+                    #
+                    #     // ...
+                    #
+                    #     var protoToCssColor = function(rgb_color) {
+                    #        var redFrac = rgb_color.red || 0.0;
+                    #        var greenFrac = rgb_color.green || 0.0;
+                    #        var blueFrac = rgb_color.blue || 0.0;
+                    #        var red = Math.floor(redFrac * 255);
+                    #        var green = Math.floor(greenFrac * 255);
+                    #        var blue = Math.floor(blueFrac * 255);
+                    #
+                    #        if (!('alpha' in rgb_color)) {
+                    #           return rgbToCssColor_(red, green, blue);
+                    #        }
+                    #
+                    #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                    #        var rgbParams = [red, green, blue].join(',');
+                    #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                    #     };
+                    #
+                    #     var rgbToCssColor_ = function(red, green, blue) {
+                    #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                    #       var hexString = rgbNumber.toString(16);
+                    #       var missingZeros = 6 - hexString.length;
+                    #       var resultBuilder = ['#'];
+                    #       for (var i = 0; i &lt; missingZeros; i++) {
+                    #          resultBuilder.push('0');
+                    #       }
+                    #       resultBuilder.push(hexString);
+                    #       return resultBuilder.join('');
+                    #     };
+                    #
+                    #     // ...
+                  "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                  "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                      # the final pixel color is defined by the equation:
+                      #
+                      #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                      #
+                      # This means that a value of 1.0 corresponds to a solid color, whereas
+                      # a value of 0.0 corresponds to a completely transparent color. This
+                      # uses a wrapper message rather than a simple float scalar so that it is
+                      # possible to distinguish between a default value and the value being unset.
+                      # If omitted, this color object is to be rendered as a solid color
+                      # (as if the alpha value had been explicitly given with a value of 1.0).
+                  "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                  "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                },
+                "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown.
+                    # (This does not override hidden_values -- if a value is listed there,
+                    #  it will still be hidden.)
+                    # BooleanConditions are used by conditional formatting,
+                    # data validation, and the criteria in filters.
+                  "values": [ # The values of the condition. The number of supported values depends
+                      # on the condition type.  Some support zero values,
+                      # others one or two values,
+                      # and ConditionType.ONE_OF_LIST supports an arbitrary number of values.
+                    { # The value of the condition.
+                      "relativeDate": "A String", # A relative date (based on the current date).
+                          # Valid only if the type is
+                          # DATE_BEFORE,
+                          # DATE_AFTER,
+                          # DATE_ON_OR_BEFORE or
+                          # DATE_ON_OR_AFTER.
+                          #
+                          # Relative dates are not supported in data validation.
+                          # They are supported only in conditional formatting and
+                          # conditional filters.
+                      "userEnteredValue": "A String", # A value the condition is based on.
+                          # The value is parsed as if the user typed into a cell.
+                          # Formulas are supported (and must begin with an `=` or a '+').
+                    },
+                  ],
+                  "type": "A String", # The type of condition.
+                },
+              },
+            },
+            "slicerId": 42, # The ID of the slicer.
+          },
+        ],
+        "properties": { # Properties of a sheet. # The properties of the sheet.
+          "sheetType": "A String", # The type of sheet. Defaults to GRID.
+              # This field cannot be changed once set.
+          "index": 42, # The index of the sheet within the spreadsheet.
+              # When adding or updating sheet properties, if this field
+              # is excluded then the sheet is added or moved to the end
+              # of the sheet list. When updating sheet indices or inserting
+              # sheets, movement is considered in "before the move" indexes.
+              # For example, if there were 3 sheets (S1, S2, S3) in order to
+              # move S1 ahead of S2 the index would have to be set to 2. A sheet
+              # index update request is ignored if the requested index is
+              # identical to the sheets current index or if the requested new
+              # index is equal to the current sheet index + 1.
+          "title": "A String", # The name of the sheet.
+          "gridProperties": { # Properties of a grid. # Additional properties of the sheet if this sheet is a grid.
+              # (If the sheet is an object sheet, containing a chart or image, then
+              # this field will be absent.)
+              # When writing it is an error to set any grid properties on non-grid sheets.
+            "columnCount": 42, # The number of columns in the grid.
+            "rowGroupControlAfter": True or False, # True if the row grouping control toggle is shown after the group.
+            "columnGroupControlAfter": True or False, # True if the column grouping control toggle is shown after the group.
+            "frozenRowCount": 42, # The number of rows that are frozen in the grid.
+            "frozenColumnCount": 42, # The number of columns that are frozen in the grid.
+            "rowCount": 42, # The number of rows in the grid.
+            "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI.
+          },
+          "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet.
+          "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI.
+              # for simplicity of conversion to/from color representations in various
+              # languages over compactness; for example, the fields of this representation
+              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+              # method in iOS; and, with just a little work, it can be easily formatted into
+              # a CSS "rgba()" string in JavaScript, as well.
+              #
+              # Note: this proto does not carry information about the absolute color space
+              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+              # space.
+              #
+              # Example (Java):
+              #
+              #      import com.google.type.Color;
+              #
+              #      // ...
+              #      public static java.awt.Color fromProto(Color protocolor) {
+              #        float alpha = protocolor.hasAlpha()
+              #            ? protocolor.getAlpha().getValue()
+              #            : 1.0;
+              #
+              #        return new java.awt.Color(
+              #            protocolor.getRed(),
+              #            protocolor.getGreen(),
+              #            protocolor.getBlue(),
+              #            alpha);
+              #      }
+              #
+              #      public static Color toProto(java.awt.Color color) {
+              #        float red = (float) color.getRed();
+              #        float green = (float) color.getGreen();
+              #        float blue = (float) color.getBlue();
+              #        float denominator = 255.0;
+              #        Color.Builder resultBuilder =
+              #            Color
+              #                .newBuilder()
+              #                .setRed(red / denominator)
+              #                .setGreen(green / denominator)
+              #                .setBlue(blue / denominator);
+              #        int alpha = color.getAlpha();
+              #        if (alpha != 255) {
+              #          result.setAlpha(
+              #              FloatValue
+              #                  .newBuilder()
+              #                  .setValue(((float) alpha) / denominator)
+              #                  .build());
+              #        }
+              #        return resultBuilder.build();
+              #      }
+              #      // ...
+              #
+              # Example (iOS / Obj-C):
+              #
+              #      // ...
+              #      static UIColor* fromProto(Color* protocolor) {
+              #         float red = [protocolor red];
+              #         float green = [protocolor green];
+              #         float blue = [protocolor blue];
+              #         FloatValue* alpha_wrapper = [protocolor alpha];
+              #         float alpha = 1.0;
+              #         if (alpha_wrapper != nil) {
+              #           alpha = [alpha_wrapper value];
+              #         }
+              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+              #      }
+              #
+              #      static Color* toProto(UIColor* color) {
+              #          CGFloat red, green, blue, alpha;
+              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+              #            return nil;
+              #          }
+              #          Color* result = [[Color alloc] init];
+              #          [result setRed:red];
+              #          [result setGreen:green];
+              #          [result setBlue:blue];
+              #          if (alpha &lt;= 0.9999) {
+              #            [result setAlpha:floatWrapperWithValue(alpha)];
+              #          }
+              #          [result autorelease];
+              #          return result;
+              #     }
+              #     // ...
+              #
+              #  Example (JavaScript):
+              #
+              #     // ...
+              #
+              #     var protoToCssColor = function(rgb_color) {
+              #        var redFrac = rgb_color.red || 0.0;
+              #        var greenFrac = rgb_color.green || 0.0;
+              #        var blueFrac = rgb_color.blue || 0.0;
+              #        var red = Math.floor(redFrac * 255);
+              #        var green = Math.floor(greenFrac * 255);
+              #        var blue = Math.floor(blueFrac * 255);
+              #
+              #        if (!('alpha' in rgb_color)) {
+              #           return rgbToCssColor_(red, green, blue);
+              #        }
+              #
+              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+              #        var rgbParams = [red, green, blue].join(',');
+              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+              #     };
+              #
+              #     var rgbToCssColor_ = function(red, green, blue) {
+              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+              #       var hexString = rgbNumber.toString(16);
+              #       var missingZeros = 6 - hexString.length;
+              #       var resultBuilder = ['#'];
+              #       for (var i = 0; i &lt; missingZeros; i++) {
+              #          resultBuilder.push('0');
+              #       }
+              #       resultBuilder.push(hexString);
+              #       return resultBuilder.join('');
+              #     };
+              #
+              #     // ...
+            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                # the final pixel color is defined by the equation:
+                #
+                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                #
+                # This means that a value of 1.0 corresponds to a solid color, whereas
+                # a value of 0.0 corresponds to a completely transparent color. This
+                # uses a wrapper message rather than a simple float scalar so that it is
+                # possible to distinguish between a default value and the value being unset.
+                # If omitted, this color object is to be rendered as a solid color
+                # (as if the alpha value had been explicitly given with a value of 1.0).
+            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+          },
+          "hidden": True or False, # True if the sheet is hidden in the UI, false if it's visible.
+          "tabColorStyle": { # A color value. # The color of the tab in the UI.
+              # If tab_color is also set, this field takes precedence.
+            "themeColor": "A String", # Theme color.
+            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
+          },
+          "sheetId": 42, # The ID of the sheet. Must be non-negative.
+              # This field cannot be changed once set.
+        },
         "protectedRanges": [ # The protected ranges in this sheet.
           { # A protected range.
             "unprotectedRanges": [ # The list of unprotected ranges within a protected sheet.
@@ -88088,6 +186989,21 @@
                 #
                 # When writing, only one of range or named_range_id
                 # may be set.
+            "protectedRangeId": 42, # The ID of the protected range.
+                # This field is read-only.
+            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
+                # This field is only visible to users with edit access to the protected
+                # range and the document.
+                # Editors are not supported with warning_only protection.
+              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
+                  # range.  Domain protection is only supported on documents within a domain.
+              "users": [ # The email addresses of users with edit access to the protected range.
+                "A String",
+              ],
+              "groups": [ # The email addresses of groups with edit access to the protected range.
+                "A String",
+              ],
+            },
             "range": { # A range on a sheet. # The range that is being protected.
                 # The range may be fully unbounded, in which case this is considered
                 # a protected sheet.
@@ -88128,21 +187044,6 @@
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
               "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
-            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
-                # This field is only visible to users with edit access to the protected
-                # range and the document.
-                # Editors are not supported with warning_only protection.
-              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
-                  # range.  Domain protection is only supported on documents within a domain.
-              "users": [ # The email addresses of users with edit access to the protected range.
-                "A String",
-              ],
-              "groups": [ # The email addresses of groups with edit access to the protected range.
-                "A String",
-              ],
-            },
-            "protectedRangeId": 42, # The ID of the protected range.
-                # This field is read-only.
             "warningOnly": True or False, # True if this protected range will show a warning when editing.
                 # Warning-based protection means that every user can edit data in the
                 # protected range, except editing will prompt a warning asking the user
@@ -88155,6 +187056,7 @@
           },
         ],
         "data": [ # Data in the grid, if this is a grid sheet.
+            #
             # The number of GridData objects returned is dependent on the number of
             # ranges requested on this sheet. For example, if this is representing
             # `Sheet1`, and the spreadsheet was requested with ranges
@@ -88194,8 +187096,8 @@
                         "sheetId": 42, # The sheet this span is on.
                         "dimension": "A String", # The dimension of the span.
                       },
-                      "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                       "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+                      "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                     },
                     "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
                         # specified.
@@ -88240,8 +187142,8 @@
                         "sheetId": 42, # The sheet this span is on.
                         "dimension": "A String", # The dimension of the span.
                       },
-                      "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                       "sheetId": 42, # The ID of the sheet when metadata is associated with an entire sheet.
+                      "spreadsheet": True or False, # True when metadata is associated with an entire spreadsheet.
                     },
                     "visibility": "A String", # The metadata visibility.  Developer metadata must always have a visibility
                         # specified.
@@ -88312,15 +187214,15 @@
                               "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                   # (Note that formulaValue is not valid,
                                   #  because the values will be calculated.)
-                                "numberValue": 3.14, # Represents a double value.
-                                    # Note: Dates, Times and DateTimes are represented as doubles in
-                                    # "serial number" format.
-                                "boolValue": True or False, # Represents a boolean value.
-                                "formulaValue": "A String", # Represents a formula.
                                 "stringValue": "A String", # Represents a string value.
                                     # Leading single quotes are not included. For example, if the user typed
                                     # `'123` into the UI, this would be represented as a `stringValue` of
                                     # `"123"`.
+                                "boolValue": True or False, # Represents a boolean value.
+                                "numberValue": 3.14, # Represents a double value.
+                                    # Note: Dates, Times and DateTimes are represented as doubles in
+                                    # "serial number" format.
+                                "formulaValue": "A String", # Represents a formula.
                                 "errorValue": { # An error in a cell. # Represents an error.
                                     # This field is read-only.
                                   "message": "A String", # A message with more information about the error
@@ -88334,7 +187236,7 @@
                               # If not specified, sorting is alphabetical by this group's values.
                             "buckets": [ # Determines the bucket from which values are chosen to sort.
                                 #
-                                # For example, in a pivot table with one row group & two column groups,
+                                # For example, in a pivot table with one row group &amp; two column groups,
                                 # the row group can list up to two values. The first value corresponds
                                 # to a value within the first column group, and the second value
                                 # corresponds to a value in the second column group.  If no values
@@ -88342,15 +187244,15 @@
                                 # to the "Grand Total" over the column groups. If a single value is listed,
                                 # this would correspond to using the "Total" of that bucket.
                               { # The kinds of value that a cell in a spreadsheet can have.
-                                "numberValue": 3.14, # Represents a double value.
-                                    # Note: Dates, Times and DateTimes are represented as doubles in
-                                    # "serial number" format.
-                                "boolValue": True or False, # Represents a boolean value.
-                                "formulaValue": "A String", # Represents a formula.
                                 "stringValue": "A String", # Represents a string value.
                                     # Leading single quotes are not included. For example, if the user typed
                                     # `'123` into the UI, this would be represented as a `stringValue` of
                                     # `"123"`.
+                                "boolValue": True or False, # Represents a boolean value.
+                                "numberValue": 3.14, # Represents a double value.
+                                    # Note: Dates, Times and DateTimes are represented as doubles in
+                                    # "serial number" format.
+                                "formulaValue": "A String", # Represents a formula.
                                 "errorValue": { # An error in a cell. # Represents an error.
                                     # This field is read-only.
                                   "message": "A String", # A message with more information about the error
@@ -88363,6 +187265,11 @@
                                 # grouping should be sorted by.
                           },
                           "sortOrder": "A String", # The order the values in this group should be sorted.
+                          "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
+                              #
+                              # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                              # means this group refers to column `C`, whereas the offset `1` would
+                              # refer to column `D`.
                           "groupRule": { # An optional setting on a PivotGroup that defines buckets for the values # The group rule to apply to this row/column group.
                               # in the source data column rather than breaking out each individual value.
                               # Only one PivotGroup with a group rule may be added for each column in
@@ -88395,10 +187302,10 @@
                                 #     +-------------+-------------------+
                                 #     | Grouped Age | AVERAGE of Amount |
                                 #     +-------------+-------------------+
-                                #     | < 25        |            $19.34 |
+                                #     | &lt; 25        |            $19.34 |
                                 #     | 25-45       |            $31.43 |
                                 #     | 45-65       |            $35.87 |
-                                #     | > 65        |            $27.55 |
+                                #     | &gt; 65        |            $27.55 |
                                 #     +-------------+-------------------+
                                 #     | Grand Total |            $29.12 |
                                 #     +-------------+-------------------+
@@ -88445,15 +187352,15 @@
                                       # group within a given ManualRule. Items that do not appear in any
                                       # group will appear on their own.
                                     { # The kinds of value that a cell in a spreadsheet can have.
-                                      "numberValue": 3.14, # Represents a double value.
-                                          # Note: Dates, Times and DateTimes are represented as doubles in
-                                          # "serial number" format.
-                                      "boolValue": True or False, # Represents a boolean value.
-                                      "formulaValue": "A String", # Represents a formula.
                                       "stringValue": "A String", # Represents a string value.
                                           # Leading single quotes are not included. For example, if the user typed
                                           # `'123` into the UI, this would be represented as a `stringValue` of
                                           # `"123"`.
+                                      "boolValue": True or False, # Represents a boolean value.
+                                      "numberValue": 3.14, # Represents a double value.
+                                          # Note: Dates, Times and DateTimes are represented as doubles in
+                                          # "serial number" format.
+                                      "formulaValue": "A String", # Represents a formula.
                                       "errorValue": { # An error in a cell. # Represents an error.
                                           # This field is read-only.
                                         "message": "A String", # A message with more information about the error
@@ -88464,15 +187371,15 @@
                                   ],
                                   "groupName": { # The kinds of value that a cell in a spreadsheet can have. # The group name, which must be a string. Each group in a given
                                       # ManualRule must have a unique group name.
-                                    "numberValue": 3.14, # Represents a double value.
-                                        # Note: Dates, Times and DateTimes are represented as doubles in
-                                        # "serial number" format.
-                                    "boolValue": True or False, # Represents a boolean value.
-                                    "formulaValue": "A String", # Represents a formula.
                                     "stringValue": "A String", # Represents a string value.
                                         # Leading single quotes are not included. For example, if the user typed
                                         # `'123` into the UI, this would be represented as a `stringValue` of
                                         # `"123"`.
+                                    "boolValue": True or False, # Represents a boolean value.
+                                    "numberValue": 3.14, # Represents a double value.
+                                        # Note: Dates, Times and DateTimes are represented as doubles in
+                                        # "serial number" format.
+                                    "formulaValue": "A String", # Represents a formula.
                                     "errorValue": { # An error in a cell. # Represents an error.
                                         # This field is read-only.
                                       "message": "A String", # A message with more information about the error
@@ -88509,11 +187416,6 @@
                               "type": "A String", # The type of date-time grouping to apply.
                             },
                           },
-                          "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
-                              #
-                              # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                              # means this group refers to column `C`, whereas the offset `1` would refer
-                              # to column `D`.
                         },
                       ],
                       "source": { # A range on a sheet. # The range the pivot table is reading data from.
@@ -88555,18 +187457,18 @@
                         { # The definition of how a value in a pivot table should be calculated.
                           "formula": "A String", # A custom formula to calculate the value.  The formula must start
                               # with an `=` character.
-                          "name": "A String", # A name to use for the value.
-                          "sourceColumnOffset": 42, # The column offset of the source range that this value reads from.
-                              #
-                              # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                              # means this value refers to column `C`, whereas the offset `1` would
-                              # refer to column `D`.
                           "summarizeFunction": "A String", # A function to summarize the value.
                               # If formula is set, the only supported values are
                               # SUM and
                               # CUSTOM.
                               # If sourceColumnOffset is set, then `CUSTOM`
                               # is not supported.
+                          "name": "A String", # A name to use for the value.
+                          "sourceColumnOffset": 42, # The column offset of the source range that this value reads from.
+                              #
+                              # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                              # means this value refers to column `C`, whereas the offset `1` would
+                              # refer to column `D`.
                           "calculatedDisplayType": "A String", # If specified, indicates that pivot values should be displayed as
                               # the result of a calculation with another pivot value. For example, if
                               # calculated_display_type is specified as PERCENT_OF_GRAND_TOTAL, all the
@@ -88632,15 +187534,15 @@
                               "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                   # (Note that formulaValue is not valid,
                                   #  because the values will be calculated.)
-                                "numberValue": 3.14, # Represents a double value.
-                                    # Note: Dates, Times and DateTimes are represented as doubles in
-                                    # "serial number" format.
-                                "boolValue": True or False, # Represents a boolean value.
-                                "formulaValue": "A String", # Represents a formula.
                                 "stringValue": "A String", # Represents a string value.
                                     # Leading single quotes are not included. For example, if the user typed
                                     # `'123` into the UI, this would be represented as a `stringValue` of
                                     # `"123"`.
+                                "boolValue": True or False, # Represents a boolean value.
+                                "numberValue": 3.14, # Represents a double value.
+                                    # Note: Dates, Times and DateTimes are represented as doubles in
+                                    # "serial number" format.
+                                "formulaValue": "A String", # Represents a formula.
                                 "errorValue": { # An error in a cell. # Represents an error.
                                     # This field is read-only.
                                   "message": "A String", # A message with more information about the error
@@ -88654,7 +187556,7 @@
                               # If not specified, sorting is alphabetical by this group's values.
                             "buckets": [ # Determines the bucket from which values are chosen to sort.
                                 #
-                                # For example, in a pivot table with one row group & two column groups,
+                                # For example, in a pivot table with one row group &amp; two column groups,
                                 # the row group can list up to two values. The first value corresponds
                                 # to a value within the first column group, and the second value
                                 # corresponds to a value in the second column group.  If no values
@@ -88662,15 +187564,15 @@
                                 # to the "Grand Total" over the column groups. If a single value is listed,
                                 # this would correspond to using the "Total" of that bucket.
                               { # The kinds of value that a cell in a spreadsheet can have.
-                                "numberValue": 3.14, # Represents a double value.
-                                    # Note: Dates, Times and DateTimes are represented as doubles in
-                                    # "serial number" format.
-                                "boolValue": True or False, # Represents a boolean value.
-                                "formulaValue": "A String", # Represents a formula.
                                 "stringValue": "A String", # Represents a string value.
                                     # Leading single quotes are not included. For example, if the user typed
                                     # `'123` into the UI, this would be represented as a `stringValue` of
                                     # `"123"`.
+                                "boolValue": True or False, # Represents a boolean value.
+                                "numberValue": 3.14, # Represents a double value.
+                                    # Note: Dates, Times and DateTimes are represented as doubles in
+                                    # "serial number" format.
+                                "formulaValue": "A String", # Represents a formula.
                                 "errorValue": { # An error in a cell. # Represents an error.
                                     # This field is read-only.
                                   "message": "A String", # A message with more information about the error
@@ -88683,6 +187585,11 @@
                                 # grouping should be sorted by.
                           },
                           "sortOrder": "A String", # The order the values in this group should be sorted.
+                          "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
+                              #
+                              # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
+                              # means this group refers to column `C`, whereas the offset `1` would
+                              # refer to column `D`.
                           "groupRule": { # An optional setting on a PivotGroup that defines buckets for the values # The group rule to apply to this row/column group.
                               # in the source data column rather than breaking out each individual value.
                               # Only one PivotGroup with a group rule may be added for each column in
@@ -88715,10 +187622,10 @@
                                 #     +-------------+-------------------+
                                 #     | Grouped Age | AVERAGE of Amount |
                                 #     +-------------+-------------------+
-                                #     | < 25        |            $19.34 |
+                                #     | &lt; 25        |            $19.34 |
                                 #     | 25-45       |            $31.43 |
                                 #     | 45-65       |            $35.87 |
-                                #     | > 65        |            $27.55 |
+                                #     | &gt; 65        |            $27.55 |
                                 #     +-------------+-------------------+
                                 #     | Grand Total |            $29.12 |
                                 #     +-------------+-------------------+
@@ -88765,15 +187672,15 @@
                                       # group within a given ManualRule. Items that do not appear in any
                                       # group will appear on their own.
                                     { # The kinds of value that a cell in a spreadsheet can have.
-                                      "numberValue": 3.14, # Represents a double value.
-                                          # Note: Dates, Times and DateTimes are represented as doubles in
-                                          # "serial number" format.
-                                      "boolValue": True or False, # Represents a boolean value.
-                                      "formulaValue": "A String", # Represents a formula.
                                       "stringValue": "A String", # Represents a string value.
                                           # Leading single quotes are not included. For example, if the user typed
                                           # `'123` into the UI, this would be represented as a `stringValue` of
                                           # `"123"`.
+                                      "boolValue": True or False, # Represents a boolean value.
+                                      "numberValue": 3.14, # Represents a double value.
+                                          # Note: Dates, Times and DateTimes are represented as doubles in
+                                          # "serial number" format.
+                                      "formulaValue": "A String", # Represents a formula.
                                       "errorValue": { # An error in a cell. # Represents an error.
                                           # This field is read-only.
                                         "message": "A String", # A message with more information about the error
@@ -88784,15 +187691,15 @@
                                   ],
                                   "groupName": { # The kinds of value that a cell in a spreadsheet can have. # The group name, which must be a string. Each group in a given
                                       # ManualRule must have a unique group name.
-                                    "numberValue": 3.14, # Represents a double value.
-                                        # Note: Dates, Times and DateTimes are represented as doubles in
-                                        # "serial number" format.
-                                    "boolValue": True or False, # Represents a boolean value.
-                                    "formulaValue": "A String", # Represents a formula.
                                     "stringValue": "A String", # Represents a string value.
                                         # Leading single quotes are not included. For example, if the user typed
                                         # `'123` into the UI, this would be represented as a `stringValue` of
                                         # `"123"`.
+                                    "boolValue": True or False, # Represents a boolean value.
+                                    "numberValue": 3.14, # Represents a double value.
+                                        # Note: Dates, Times and DateTimes are represented as doubles in
+                                        # "serial number" format.
+                                    "formulaValue": "A String", # Represents a formula.
                                     "errorValue": { # An error in a cell. # Represents an error.
                                         # This field is read-only.
                                       "message": "A String", # A message with more information about the error
@@ -88829,11 +187736,6 @@
                               "type": "A String", # The type of date-time grouping to apply.
                             },
                           },
-                          "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on.
-                              #
-                              # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0`
-                              # means this group refers to column `C`, whereas the offset `1` would refer
-                              # to column `D`.
                         },
                       ],
                     },
@@ -88845,15 +187747,15 @@
                         # the calculated value.  For cells with literals, this is
                         # the same as the user_entered_value.
                         # This field is read-only.
-                      "numberValue": 3.14, # Represents a double value.
-                          # Note: Dates, Times and DateTimes are represented as doubles in
-                          # "serial number" format.
-                      "boolValue": True or False, # Represents a boolean value.
-                      "formulaValue": "A String", # Represents a formula.
                       "stringValue": "A String", # Represents a string value.
                           # Leading single quotes are not included. For example, if the user typed
                           # `'123` into the UI, this would be represented as a `stringValue` of
                           # `"123"`.
+                      "boolValue": True or False, # Represents a boolean value.
+                      "numberValue": 3.14, # Represents a double value.
+                          # Note: Dates, Times and DateTimes are represented as doubles in
+                          # "serial number" format.
+                      "formulaValue": "A String", # Represents a formula.
                       "errorValue": { # An error in a cell. # Represents an error.
                           # This field is read-only.
                         "message": "A String", # A message with more information about the error
@@ -88867,15 +187769,15 @@
                     "userEnteredValue": { # The kinds of value that a cell in a spreadsheet can have. # The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()`
                         # Note: Dates, Times and DateTimes are represented as doubles in
                         # serial number format.
-                      "numberValue": 3.14, # Represents a double value.
-                          # Note: Dates, Times and DateTimes are represented as doubles in
-                          # "serial number" format.
-                      "boolValue": True or False, # Represents a boolean value.
-                      "formulaValue": "A String", # Represents a formula.
                       "stringValue": "A String", # Represents a string value.
                           # Leading single quotes are not included. For example, if the user typed
                           # `'123` into the UI, this would be represented as a `stringValue` of
                           # `"123"`.
+                      "boolValue": True or False, # Represents a boolean value.
+                      "numberValue": 3.14, # Represents a double value.
+                          # Note: Dates, Times and DateTimes are represented as doubles in
+                          # "serial number" format.
+                      "formulaValue": "A String", # Represents a formula.
                       "errorValue": { # An error in a cell. # Represents an error.
                           # This field is read-only.
                         "message": "A String", # A message with more information about the error
@@ -88890,6 +187792,13 @@
                         # If the effective format is the default format, effective format will
                         # not be written.
                         # This field is read-only.
+                      "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                          # When updating padding, every field must be specified.
+                        "top": 42, # The top padding of the cell.
+                        "left": 42, # The left padding of the cell.
+                        "right": 42, # The right padding of the cell.
+                        "bottom": 42, # The bottom padding of the cell.
+                      },
                       "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                         "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                             # the user's locale will be used if necessary for the given type.
@@ -88899,12 +187808,143 @@
                             # When writing, this field must be set.
                       },
                       "textDirection": "A String", # The direction of the text in the cell.
-                      "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                          # When updating padding, every field must be specified.
-                        "top": 42, # The top padding of the cell.
-                        "left": 42, # The left padding of the cell.
-                        "right": 42, # The right padding of the cell.
-                        "bottom": 42, # The bottom padding of the cell.
+                      "backgroundColorStyle": { # A color value. # The background color of the cell.
+                          # If background_color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
                       },
                       "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                       "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -88977,14 +188017,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -89014,11 +188054,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -89114,14 +188154,14 @@
                               #
                               #      static Color* toProto(UIColor* color) {
                               #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                               #            return nil;
                               #          }
                               #          Color* result = [[Color alloc] init];
                               #          [result setRed:red];
                               #          [result setGreen:green];
                               #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
+                              #          if (alpha &lt;= 0.9999) {
                               #            [result setAlpha:floatWrapperWithValue(alpha)];
                               #          }
                               #          [result autorelease];
@@ -89151,11 +188191,11 @@
                               #     };
                               #
                               #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                               #       var hexString = rgbNumber.toString(16);
                               #       var missingZeros = 6 - hexString.length;
                               #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
                               #          resultBuilder.push('0');
                               #       }
                               #       resultBuilder.push(hexString);
@@ -89180,284 +188220,144 @@
                           },
                           "width": 42, # The width of the border, in pixels.
                               # Deprecated; the width is determined by the "style" field.
-                          "style": "A String", # The style of the border.
-                        },
-                        "right": { # A border along a cell. # The right border of the cell.
-                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                              # for simplicity of conversion to/from color representations in various
-                              # languages over compactness; for example, the fields of this representation
-                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                              # method in iOS; and, with just a little work, it can be easily formatted into
-                              # a CSS "rgba()" string in JavaScript, as well.
-                              #
-                              # Note: this proto does not carry information about the absolute color space
-                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                              # space.
-                              #
-                              # Example (Java):
-                              #
-                              #      import com.google.type.Color;
-                              #
-                              #      // ...
-                              #      public static java.awt.Color fromProto(Color protocolor) {
-                              #        float alpha = protocolor.hasAlpha()
-                              #            ? protocolor.getAlpha().getValue()
-                              #            : 1.0;
-                              #
-                              #        return new java.awt.Color(
-                              #            protocolor.getRed(),
-                              #            protocolor.getGreen(),
-                              #            protocolor.getBlue(),
-                              #            alpha);
-                              #      }
-                              #
-                              #      public static Color toProto(java.awt.Color color) {
-                              #        float red = (float) color.getRed();
-                              #        float green = (float) color.getGreen();
-                              #        float blue = (float) color.getBlue();
-                              #        float denominator = 255.0;
-                              #        Color.Builder resultBuilder =
-                              #            Color
-                              #                .newBuilder()
-                              #                .setRed(red / denominator)
-                              #                .setGreen(green / denominator)
-                              #                .setBlue(blue / denominator);
-                              #        int alpha = color.getAlpha();
-                              #        if (alpha != 255) {
-                              #          result.setAlpha(
-                              #              FloatValue
-                              #                  .newBuilder()
-                              #                  .setValue(((float) alpha) / denominator)
-                              #                  .build());
-                              #        }
-                              #        return resultBuilder.build();
-                              #      }
-                              #      // ...
-                              #
-                              # Example (iOS / Obj-C):
-                              #
-                              #      // ...
-                              #      static UIColor* fromProto(Color* protocolor) {
-                              #         float red = [protocolor red];
-                              #         float green = [protocolor green];
-                              #         float blue = [protocolor blue];
-                              #         FloatValue* alpha_wrapper = [protocolor alpha];
-                              #         float alpha = 1.0;
-                              #         if (alpha_wrapper != nil) {
-                              #           alpha = [alpha_wrapper value];
-                              #         }
-                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                              #      }
-                              #
-                              #      static Color* toProto(UIColor* color) {
-                              #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                              #            return nil;
-                              #          }
-                              #          Color* result = [[Color alloc] init];
-                              #          [result setRed:red];
-                              #          [result setGreen:green];
-                              #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
-                              #            [result setAlpha:floatWrapperWithValue(alpha)];
-                              #          }
-                              #          [result autorelease];
-                              #          return result;
-                              #     }
-                              #     // ...
-                              #
-                              #  Example (JavaScript):
-                              #
-                              #     // ...
-                              #
-                              #     var protoToCssColor = function(rgb_color) {
-                              #        var redFrac = rgb_color.red || 0.0;
-                              #        var greenFrac = rgb_color.green || 0.0;
-                              #        var blueFrac = rgb_color.blue || 0.0;
-                              #        var red = Math.floor(redFrac * 255);
-                              #        var green = Math.floor(greenFrac * 255);
-                              #        var blue = Math.floor(blueFrac * 255);
-                              #
-                              #        if (!('alpha' in rgb_color)) {
-                              #           return rgbToCssColor_(red, green, blue);
-                              #        }
-                              #
-                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                              #        var rgbParams = [red, green, blue].join(',');
-                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                              #     };
-                              #
-                              #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                              #       var hexString = rgbNumber.toString(16);
-                              #       var missingZeros = 6 - hexString.length;
-                              #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
-                              #          resultBuilder.push('0');
-                              #       }
-                              #       resultBuilder.push(hexString);
-                              #       return resultBuilder.join('');
-                              #     };
-                              #
-                              #     // ...
-                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                                # the final pixel color is defined by the equation:
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
                                 #
-                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
                                 #
-                                # This means that a value of 1.0 corresponds to a solid color, whereas
-                                # a value of 0.0 corresponds to a completely transparent color. This
-                                # uses a wrapper message rather than a simple float scalar so that it is
-                                # possible to distinguish between a default value and the value being unset.
-                                # If omitted, this color object is to be rendered as a solid color
-                                # (as if the alpha value had been explicitly given with a value of 1.0).
-                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
                           },
-                          "width": 42, # The width of the border, in pixels.
-                              # Deprecated; the width is determined by the "style" field.
-                          "style": "A String", # The style of the border.
-                        },
-                        "bottom": { # A border along a cell. # The bottom border of the cell.
-                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                              # for simplicity of conversion to/from color representations in various
-                              # languages over compactness; for example, the fields of this representation
-                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                              # method in iOS; and, with just a little work, it can be easily formatted into
-                              # a CSS "rgba()" string in JavaScript, as well.
-                              #
-                              # Note: this proto does not carry information about the absolute color space
-                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                              # space.
-                              #
-                              # Example (Java):
-                              #
-                              #      import com.google.type.Color;
-                              #
-                              #      // ...
-                              #      public static java.awt.Color fromProto(Color protocolor) {
-                              #        float alpha = protocolor.hasAlpha()
-                              #            ? protocolor.getAlpha().getValue()
-                              #            : 1.0;
-                              #
-                              #        return new java.awt.Color(
-                              #            protocolor.getRed(),
-                              #            protocolor.getGreen(),
-                              #            protocolor.getBlue(),
-                              #            alpha);
-                              #      }
-                              #
-                              #      public static Color toProto(java.awt.Color color) {
-                              #        float red = (float) color.getRed();
-                              #        float green = (float) color.getGreen();
-                              #        float blue = (float) color.getBlue();
-                              #        float denominator = 255.0;
-                              #        Color.Builder resultBuilder =
-                              #            Color
-                              #                .newBuilder()
-                              #                .setRed(red / denominator)
-                              #                .setGreen(green / denominator)
-                              #                .setBlue(blue / denominator);
-                              #        int alpha = color.getAlpha();
-                              #        if (alpha != 255) {
-                              #          result.setAlpha(
-                              #              FloatValue
-                              #                  .newBuilder()
-                              #                  .setValue(((float) alpha) / denominator)
-                              #                  .build());
-                              #        }
-                              #        return resultBuilder.build();
-                              #      }
-                              #      // ...
-                              #
-                              # Example (iOS / Obj-C):
-                              #
-                              #      // ...
-                              #      static UIColor* fromProto(Color* protocolor) {
-                              #         float red = [protocolor red];
-                              #         float green = [protocolor green];
-                              #         float blue = [protocolor blue];
-                              #         FloatValue* alpha_wrapper = [protocolor alpha];
-                              #         float alpha = 1.0;
-                              #         if (alpha_wrapper != nil) {
-                              #           alpha = [alpha_wrapper value];
-                              #         }
-                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                              #      }
-                              #
-                              #      static Color* toProto(UIColor* color) {
-                              #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                              #            return nil;
-                              #          }
-                              #          Color* result = [[Color alloc] init];
-                              #          [result setRed:red];
-                              #          [result setGreen:green];
-                              #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
-                              #            [result setAlpha:floatWrapperWithValue(alpha)];
-                              #          }
-                              #          [result autorelease];
-                              #          return result;
-                              #     }
-                              #     // ...
-                              #
-                              #  Example (JavaScript):
-                              #
-                              #     // ...
-                              #
-                              #     var protoToCssColor = function(rgb_color) {
-                              #        var redFrac = rgb_color.red || 0.0;
-                              #        var greenFrac = rgb_color.green || 0.0;
-                              #        var blueFrac = rgb_color.blue || 0.0;
-                              #        var red = Math.floor(redFrac * 255);
-                              #        var green = Math.floor(greenFrac * 255);
-                              #        var blue = Math.floor(blueFrac * 255);
-                              #
-                              #        if (!('alpha' in rgb_color)) {
-                              #           return rgbToCssColor_(red, green, blue);
-                              #        }
-                              #
-                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                              #        var rgbParams = [red, green, blue].join(',');
-                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                              #     };
-                              #
-                              #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                              #       var hexString = rgbNumber.toString(16);
-                              #       var missingZeros = 6 - hexString.length;
-                              #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
-                              #          resultBuilder.push('0');
-                              #       }
-                              #       resultBuilder.push(hexString);
-                              #       return resultBuilder.join('');
-                              #     };
-                              #
-                              #     // ...
-                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                                # the final pixel color is defined by the equation:
-                                #
-                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                                #
-                                # This means that a value of 1.0 corresponds to a solid color, whereas
-                                # a value of 0.0 corresponds to a completely transparent color. This
-                                # uses a wrapper message rather than a simple float scalar so that it is
-                                # possible to distinguish between a default value and the value being unset.
-                                # If omitted, this color object is to be rendered as a solid color
-                                # (as if the alpha value had been explicitly given with a value of 1.0).
-                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                          },
-                          "width": 42, # The width of the border, in pixels.
-                              # Deprecated; the width is determined by the "style" field.
                           "style": "A String", # The style of the border.
                         },
                         "left": { # A border along a cell. # The left border of the cell.
@@ -89531,14 +188431,14 @@
                               #
                               #      static Color* toProto(UIColor* color) {
                               #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                               #            return nil;
                               #          }
                               #          Color* result = [[Color alloc] init];
                               #          [result setRed:red];
                               #          [result setGreen:green];
                               #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
+                              #          if (alpha &lt;= 0.9999) {
                               #            [result setAlpha:floatWrapperWithValue(alpha)];
                               #          }
                               #          [result autorelease];
@@ -89568,11 +188468,11 @@
                               #     };
                               #
                               #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                               #       var hexString = rgbNumber.toString(16);
                               #       var missingZeros = 6 - hexString.length;
                               #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
                               #          resultBuilder.push('0');
                               #       }
                               #       resultBuilder.push(hexString);
@@ -89597,6 +188497,698 @@
                           },
                           "width": 42, # The width of the border, in pixels.
                               # Deprecated; the width is determined by the "style" field.
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                          },
+                          "style": "A String", # The style of the border.
+                        },
+                        "right": { # A border along a cell. # The right border of the cell.
+                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                          "width": 42, # The width of the border, in pixels.
+                              # Deprecated; the width is determined by the "style" field.
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                          },
+                          "style": "A String", # The style of the border.
+                        },
+                        "bottom": { # A border along a cell. # The bottom border of the cell.
+                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                          "width": 42, # The width of the border, in pixels.
+                              # Deprecated; the width is determined by the "style" field.
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                          },
                           "style": "A String", # The style of the border.
                         },
                       },
@@ -89694,14 +189286,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -89731,11 +189323,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -89759,6 +189351,144 @@
                           "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                         },
                         "bold": True or False, # True if the text is bold.
+                        "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                            # If foreground_color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
                         "strikethrough": True or False, # True if the text has a strikethrough.
                         "fontFamily": "A String", # The font family.
                         "fontSize": 42, # The size of the font.
@@ -89770,6 +189500,13 @@
                     "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell.
                         #
                         # When writing, the new format will be merged with the existing format.
+                      "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+                          # When updating padding, every field must be specified.
+                        "top": 42, # The top padding of the cell.
+                        "left": 42, # The left padding of the cell.
+                        "right": 42, # The right padding of the cell.
+                        "bottom": 42, # The bottom padding of the cell.
+                      },
                       "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
                         "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
                             # the user's locale will be used if necessary for the given type.
@@ -89779,12 +189516,143 @@
                             # When writing, this field must be set.
                       },
                       "textDirection": "A String", # The direction of the text in the cell.
-                      "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-                          # When updating padding, every field must be specified.
-                        "top": 42, # The top padding of the cell.
-                        "left": 42, # The left padding of the cell.
-                        "right": 42, # The right padding of the cell.
-                        "bottom": 42, # The bottom padding of the cell.
+                      "backgroundColorStyle": { # A color value. # The background color of the cell.
+                          # If background_color is also set, this field takes precedence.
+                        "themeColor": "A String", # Theme color.
+                        "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                            # for simplicity of conversion to/from color representations in various
+                            # languages over compactness; for example, the fields of this representation
+                            # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                            # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                            # method in iOS; and, with just a little work, it can be easily formatted into
+                            # a CSS "rgba()" string in JavaScript, as well.
+                            #
+                            # Note: this proto does not carry information about the absolute color space
+                            # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                            # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                            # space.
+                            #
+                            # Example (Java):
+                            #
+                            #      import com.google.type.Color;
+                            #
+                            #      // ...
+                            #      public static java.awt.Color fromProto(Color protocolor) {
+                            #        float alpha = protocolor.hasAlpha()
+                            #            ? protocolor.getAlpha().getValue()
+                            #            : 1.0;
+                            #
+                            #        return new java.awt.Color(
+                            #            protocolor.getRed(),
+                            #            protocolor.getGreen(),
+                            #            protocolor.getBlue(),
+                            #            alpha);
+                            #      }
+                            #
+                            #      public static Color toProto(java.awt.Color color) {
+                            #        float red = (float) color.getRed();
+                            #        float green = (float) color.getGreen();
+                            #        float blue = (float) color.getBlue();
+                            #        float denominator = 255.0;
+                            #        Color.Builder resultBuilder =
+                            #            Color
+                            #                .newBuilder()
+                            #                .setRed(red / denominator)
+                            #                .setGreen(green / denominator)
+                            #                .setBlue(blue / denominator);
+                            #        int alpha = color.getAlpha();
+                            #        if (alpha != 255) {
+                            #          result.setAlpha(
+                            #              FloatValue
+                            #                  .newBuilder()
+                            #                  .setValue(((float) alpha) / denominator)
+                            #                  .build());
+                            #        }
+                            #        return resultBuilder.build();
+                            #      }
+                            #      // ...
+                            #
+                            # Example (iOS / Obj-C):
+                            #
+                            #      // ...
+                            #      static UIColor* fromProto(Color* protocolor) {
+                            #         float red = [protocolor red];
+                            #         float green = [protocolor green];
+                            #         float blue = [protocolor blue];
+                            #         FloatValue* alpha_wrapper = [protocolor alpha];
+                            #         float alpha = 1.0;
+                            #         if (alpha_wrapper != nil) {
+                            #           alpha = [alpha_wrapper value];
+                            #         }
+                            #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                            #      }
+                            #
+                            #      static Color* toProto(UIColor* color) {
+                            #          CGFloat red, green, blue, alpha;
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                            #            return nil;
+                            #          }
+                            #          Color* result = [[Color alloc] init];
+                            #          [result setRed:red];
+                            #          [result setGreen:green];
+                            #          [result setBlue:blue];
+                            #          if (alpha &lt;= 0.9999) {
+                            #            [result setAlpha:floatWrapperWithValue(alpha)];
+                            #          }
+                            #          [result autorelease];
+                            #          return result;
+                            #     }
+                            #     // ...
+                            #
+                            #  Example (JavaScript):
+                            #
+                            #     // ...
+                            #
+                            #     var protoToCssColor = function(rgb_color) {
+                            #        var redFrac = rgb_color.red || 0.0;
+                            #        var greenFrac = rgb_color.green || 0.0;
+                            #        var blueFrac = rgb_color.blue || 0.0;
+                            #        var red = Math.floor(redFrac * 255);
+                            #        var green = Math.floor(greenFrac * 255);
+                            #        var blue = Math.floor(blueFrac * 255);
+                            #
+                            #        if (!('alpha' in rgb_color)) {
+                            #           return rgbToCssColor_(red, green, blue);
+                            #        }
+                            #
+                            #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                            #        var rgbParams = [red, green, blue].join(',');
+                            #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                            #     };
+                            #
+                            #     var rgbToCssColor_ = function(red, green, blue) {
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                            #       var hexString = rgbNumber.toString(16);
+                            #       var missingZeros = 6 - hexString.length;
+                            #       var resultBuilder = ['#'];
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
+                            #          resultBuilder.push('0');
+                            #       }
+                            #       resultBuilder.push(hexString);
+                            #       return resultBuilder.join('');
+                            #     };
+                            #
+                            #     // ...
+                          "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                          "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                              # the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color. This
+                              # uses a wrapper message rather than a simple float scalar so that it is
+                              # possible to distinguish between a default value and the value being unset.
+                              # If omitted, this color object is to be rendered as a solid color
+                              # (as if the alpha value had been explicitly given with a value of 1.0).
+                          "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                          "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                        },
                       },
                       "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                       "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -89857,14 +189725,14 @@
                           #
                           #      static Color* toProto(UIColor* color) {
                           #          CGFloat red, green, blue, alpha;
-                          #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                          #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                           #            return nil;
                           #          }
                           #          Color* result = [[Color alloc] init];
                           #          [result setRed:red];
                           #          [result setGreen:green];
                           #          [result setBlue:blue];
-                          #          if (alpha <= 0.9999) {
+                          #          if (alpha &lt;= 0.9999) {
                           #            [result setAlpha:floatWrapperWithValue(alpha)];
                           #          }
                           #          [result autorelease];
@@ -89894,11 +189762,11 @@
                           #     };
                           #
                           #     var rgbToCssColor_ = function(red, green, blue) {
-                          #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                          #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                           #       var hexString = rgbNumber.toString(16);
                           #       var missingZeros = 6 - hexString.length;
                           #       var resultBuilder = ['#'];
-                          #       for (var i = 0; i < missingZeros; i++) {
+                          #       for (var i = 0; i &lt; missingZeros; i++) {
                           #          resultBuilder.push('0');
                           #       }
                           #       resultBuilder.push(hexString);
@@ -89994,14 +189862,14 @@
                               #
                               #      static Color* toProto(UIColor* color) {
                               #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                               #            return nil;
                               #          }
                               #          Color* result = [[Color alloc] init];
                               #          [result setRed:red];
                               #          [result setGreen:green];
                               #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
+                              #          if (alpha &lt;= 0.9999) {
                               #            [result setAlpha:floatWrapperWithValue(alpha)];
                               #          }
                               #          [result autorelease];
@@ -90031,11 +189899,11 @@
                               #     };
                               #
                               #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                               #       var hexString = rgbNumber.toString(16);
                               #       var missingZeros = 6 - hexString.length;
                               #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
                               #          resultBuilder.push('0');
                               #       }
                               #       resultBuilder.push(hexString);
@@ -90060,284 +189928,144 @@
                           },
                           "width": 42, # The width of the border, in pixels.
                               # Deprecated; the width is determined by the "style" field.
-                          "style": "A String", # The style of the border.
-                        },
-                        "right": { # A border along a cell. # The right border of the cell.
-                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                              # for simplicity of conversion to/from color representations in various
-                              # languages over compactness; for example, the fields of this representation
-                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                              # method in iOS; and, with just a little work, it can be easily formatted into
-                              # a CSS "rgba()" string in JavaScript, as well.
-                              #
-                              # Note: this proto does not carry information about the absolute color space
-                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                              # space.
-                              #
-                              # Example (Java):
-                              #
-                              #      import com.google.type.Color;
-                              #
-                              #      // ...
-                              #      public static java.awt.Color fromProto(Color protocolor) {
-                              #        float alpha = protocolor.hasAlpha()
-                              #            ? protocolor.getAlpha().getValue()
-                              #            : 1.0;
-                              #
-                              #        return new java.awt.Color(
-                              #            protocolor.getRed(),
-                              #            protocolor.getGreen(),
-                              #            protocolor.getBlue(),
-                              #            alpha);
-                              #      }
-                              #
-                              #      public static Color toProto(java.awt.Color color) {
-                              #        float red = (float) color.getRed();
-                              #        float green = (float) color.getGreen();
-                              #        float blue = (float) color.getBlue();
-                              #        float denominator = 255.0;
-                              #        Color.Builder resultBuilder =
-                              #            Color
-                              #                .newBuilder()
-                              #                .setRed(red / denominator)
-                              #                .setGreen(green / denominator)
-                              #                .setBlue(blue / denominator);
-                              #        int alpha = color.getAlpha();
-                              #        if (alpha != 255) {
-                              #          result.setAlpha(
-                              #              FloatValue
-                              #                  .newBuilder()
-                              #                  .setValue(((float) alpha) / denominator)
-                              #                  .build());
-                              #        }
-                              #        return resultBuilder.build();
-                              #      }
-                              #      // ...
-                              #
-                              # Example (iOS / Obj-C):
-                              #
-                              #      // ...
-                              #      static UIColor* fromProto(Color* protocolor) {
-                              #         float red = [protocolor red];
-                              #         float green = [protocolor green];
-                              #         float blue = [protocolor blue];
-                              #         FloatValue* alpha_wrapper = [protocolor alpha];
-                              #         float alpha = 1.0;
-                              #         if (alpha_wrapper != nil) {
-                              #           alpha = [alpha_wrapper value];
-                              #         }
-                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                              #      }
-                              #
-                              #      static Color* toProto(UIColor* color) {
-                              #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                              #            return nil;
-                              #          }
-                              #          Color* result = [[Color alloc] init];
-                              #          [result setRed:red];
-                              #          [result setGreen:green];
-                              #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
-                              #            [result setAlpha:floatWrapperWithValue(alpha)];
-                              #          }
-                              #          [result autorelease];
-                              #          return result;
-                              #     }
-                              #     // ...
-                              #
-                              #  Example (JavaScript):
-                              #
-                              #     // ...
-                              #
-                              #     var protoToCssColor = function(rgb_color) {
-                              #        var redFrac = rgb_color.red || 0.0;
-                              #        var greenFrac = rgb_color.green || 0.0;
-                              #        var blueFrac = rgb_color.blue || 0.0;
-                              #        var red = Math.floor(redFrac * 255);
-                              #        var green = Math.floor(greenFrac * 255);
-                              #        var blue = Math.floor(blueFrac * 255);
-                              #
-                              #        if (!('alpha' in rgb_color)) {
-                              #           return rgbToCssColor_(red, green, blue);
-                              #        }
-                              #
-                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                              #        var rgbParams = [red, green, blue].join(',');
-                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                              #     };
-                              #
-                              #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                              #       var hexString = rgbNumber.toString(16);
-                              #       var missingZeros = 6 - hexString.length;
-                              #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
-                              #          resultBuilder.push('0');
-                              #       }
-                              #       resultBuilder.push(hexString);
-                              #       return resultBuilder.join('');
-                              #     };
-                              #
-                              #     // ...
-                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                                # the final pixel color is defined by the equation:
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
                                 #
-                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
                                 #
-                                # This means that a value of 1.0 corresponds to a solid color, whereas
-                                # a value of 0.0 corresponds to a completely transparent color. This
-                                # uses a wrapper message rather than a simple float scalar so that it is
-                                # possible to distinguish between a default value and the value being unset.
-                                # If omitted, this color object is to be rendered as a solid color
-                                # (as if the alpha value had been explicitly given with a value of 1.0).
-                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
                           },
-                          "width": 42, # The width of the border, in pixels.
-                              # Deprecated; the width is determined by the "style" field.
-                          "style": "A String", # The style of the border.
-                        },
-                        "bottom": { # A border along a cell. # The bottom border of the cell.
-                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                              # for simplicity of conversion to/from color representations in various
-                              # languages over compactness; for example, the fields of this representation
-                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                              # method in iOS; and, with just a little work, it can be easily formatted into
-                              # a CSS "rgba()" string in JavaScript, as well.
-                              #
-                              # Note: this proto does not carry information about the absolute color space
-                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                              # space.
-                              #
-                              # Example (Java):
-                              #
-                              #      import com.google.type.Color;
-                              #
-                              #      // ...
-                              #      public static java.awt.Color fromProto(Color protocolor) {
-                              #        float alpha = protocolor.hasAlpha()
-                              #            ? protocolor.getAlpha().getValue()
-                              #            : 1.0;
-                              #
-                              #        return new java.awt.Color(
-                              #            protocolor.getRed(),
-                              #            protocolor.getGreen(),
-                              #            protocolor.getBlue(),
-                              #            alpha);
-                              #      }
-                              #
-                              #      public static Color toProto(java.awt.Color color) {
-                              #        float red = (float) color.getRed();
-                              #        float green = (float) color.getGreen();
-                              #        float blue = (float) color.getBlue();
-                              #        float denominator = 255.0;
-                              #        Color.Builder resultBuilder =
-                              #            Color
-                              #                .newBuilder()
-                              #                .setRed(red / denominator)
-                              #                .setGreen(green / denominator)
-                              #                .setBlue(blue / denominator);
-                              #        int alpha = color.getAlpha();
-                              #        if (alpha != 255) {
-                              #          result.setAlpha(
-                              #              FloatValue
-                              #                  .newBuilder()
-                              #                  .setValue(((float) alpha) / denominator)
-                              #                  .build());
-                              #        }
-                              #        return resultBuilder.build();
-                              #      }
-                              #      // ...
-                              #
-                              # Example (iOS / Obj-C):
-                              #
-                              #      // ...
-                              #      static UIColor* fromProto(Color* protocolor) {
-                              #         float red = [protocolor red];
-                              #         float green = [protocolor green];
-                              #         float blue = [protocolor blue];
-                              #         FloatValue* alpha_wrapper = [protocolor alpha];
-                              #         float alpha = 1.0;
-                              #         if (alpha_wrapper != nil) {
-                              #           alpha = [alpha_wrapper value];
-                              #         }
-                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                              #      }
-                              #
-                              #      static Color* toProto(UIColor* color) {
-                              #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                              #            return nil;
-                              #          }
-                              #          Color* result = [[Color alloc] init];
-                              #          [result setRed:red];
-                              #          [result setGreen:green];
-                              #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
-                              #            [result setAlpha:floatWrapperWithValue(alpha)];
-                              #          }
-                              #          [result autorelease];
-                              #          return result;
-                              #     }
-                              #     // ...
-                              #
-                              #  Example (JavaScript):
-                              #
-                              #     // ...
-                              #
-                              #     var protoToCssColor = function(rgb_color) {
-                              #        var redFrac = rgb_color.red || 0.0;
-                              #        var greenFrac = rgb_color.green || 0.0;
-                              #        var blueFrac = rgb_color.blue || 0.0;
-                              #        var red = Math.floor(redFrac * 255);
-                              #        var green = Math.floor(greenFrac * 255);
-                              #        var blue = Math.floor(blueFrac * 255);
-                              #
-                              #        if (!('alpha' in rgb_color)) {
-                              #           return rgbToCssColor_(red, green, blue);
-                              #        }
-                              #
-                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                              #        var rgbParams = [red, green, blue].join(',');
-                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                              #     };
-                              #
-                              #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                              #       var hexString = rgbNumber.toString(16);
-                              #       var missingZeros = 6 - hexString.length;
-                              #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
-                              #          resultBuilder.push('0');
-                              #       }
-                              #       resultBuilder.push(hexString);
-                              #       return resultBuilder.join('');
-                              #     };
-                              #
-                              #     // ...
-                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                                # the final pixel color is defined by the equation:
-                                #
-                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                                #
-                                # This means that a value of 1.0 corresponds to a solid color, whereas
-                                # a value of 0.0 corresponds to a completely transparent color. This
-                                # uses a wrapper message rather than a simple float scalar so that it is
-                                # possible to distinguish between a default value and the value being unset.
-                                # If omitted, this color object is to be rendered as a solid color
-                                # (as if the alpha value had been explicitly given with a value of 1.0).
-                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-                          },
-                          "width": 42, # The width of the border, in pixels.
-                              # Deprecated; the width is determined by the "style" field.
                           "style": "A String", # The style of the border.
                         },
                         "left": { # A border along a cell. # The left border of the cell.
@@ -90411,14 +190139,14 @@
                               #
                               #      static Color* toProto(UIColor* color) {
                               #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                               #            return nil;
                               #          }
                               #          Color* result = [[Color alloc] init];
                               #          [result setRed:red];
                               #          [result setGreen:green];
                               #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
+                              #          if (alpha &lt;= 0.9999) {
                               #            [result setAlpha:floatWrapperWithValue(alpha)];
                               #          }
                               #          [result autorelease];
@@ -90448,11 +190176,11 @@
                               #     };
                               #
                               #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                               #       var hexString = rgbNumber.toString(16);
                               #       var missingZeros = 6 - hexString.length;
                               #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
                               #          resultBuilder.push('0');
                               #       }
                               #       resultBuilder.push(hexString);
@@ -90477,6 +190205,698 @@
                           },
                           "width": 42, # The width of the border, in pixels.
                               # Deprecated; the width is determined by the "style" field.
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                          },
+                          "style": "A String", # The style of the border.
+                        },
+                        "right": { # A border along a cell. # The right border of the cell.
+                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                          "width": 42, # The width of the border, in pixels.
+                              # Deprecated; the width is determined by the "style" field.
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                          },
+                          "style": "A String", # The style of the border.
+                        },
+                        "bottom": { # A border along a cell. # The bottom border of the cell.
+                          "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                          "width": 42, # The width of the border, in pixels.
+                              # Deprecated; the width is determined by the "style" field.
+                          "colorStyle": { # A color value. # The color of the border.
+                              # If color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                          },
                           "style": "A String", # The style of the border.
                         },
                       },
@@ -90574,14 +190994,14 @@
                             #
                             #      static Color* toProto(UIColor* color) {
                             #          CGFloat red, green, blue, alpha;
-                            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                             #            return nil;
                             #          }
                             #          Color* result = [[Color alloc] init];
                             #          [result setRed:red];
                             #          [result setGreen:green];
                             #          [result setBlue:blue];
-                            #          if (alpha <= 0.9999) {
+                            #          if (alpha &lt;= 0.9999) {
                             #            [result setAlpha:floatWrapperWithValue(alpha)];
                             #          }
                             #          [result autorelease];
@@ -90611,11 +191031,11 @@
                             #     };
                             #
                             #     var rgbToCssColor_ = function(red, green, blue) {
-                            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                             #       var hexString = rgbNumber.toString(16);
                             #       var missingZeros = 6 - hexString.length;
                             #       var resultBuilder = ['#'];
-                            #       for (var i = 0; i < missingZeros; i++) {
+                            #       for (var i = 0; i &lt; missingZeros; i++) {
                             #          resultBuilder.push('0');
                             #       }
                             #       resultBuilder.push(hexString);
@@ -90639,6 +191059,144 @@
                           "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                         },
                         "bold": True or False, # True if the text is bold.
+                        "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                            # If foreground_color is also set, this field takes precedence.
+                          "themeColor": "A String", # Theme color.
+                          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                              # for simplicity of conversion to/from color representations in various
+                              # languages over compactness; for example, the fields of this representation
+                              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                              # method in iOS; and, with just a little work, it can be easily formatted into
+                              # a CSS "rgba()" string in JavaScript, as well.
+                              #
+                              # Note: this proto does not carry information about the absolute color space
+                              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                              # space.
+                              #
+                              # Example (Java):
+                              #
+                              #      import com.google.type.Color;
+                              #
+                              #      // ...
+                              #      public static java.awt.Color fromProto(Color protocolor) {
+                              #        float alpha = protocolor.hasAlpha()
+                              #            ? protocolor.getAlpha().getValue()
+                              #            : 1.0;
+                              #
+                              #        return new java.awt.Color(
+                              #            protocolor.getRed(),
+                              #            protocolor.getGreen(),
+                              #            protocolor.getBlue(),
+                              #            alpha);
+                              #      }
+                              #
+                              #      public static Color toProto(java.awt.Color color) {
+                              #        float red = (float) color.getRed();
+                              #        float green = (float) color.getGreen();
+                              #        float blue = (float) color.getBlue();
+                              #        float denominator = 255.0;
+                              #        Color.Builder resultBuilder =
+                              #            Color
+                              #                .newBuilder()
+                              #                .setRed(red / denominator)
+                              #                .setGreen(green / denominator)
+                              #                .setBlue(blue / denominator);
+                              #        int alpha = color.getAlpha();
+                              #        if (alpha != 255) {
+                              #          result.setAlpha(
+                              #              FloatValue
+                              #                  .newBuilder()
+                              #                  .setValue(((float) alpha) / denominator)
+                              #                  .build());
+                              #        }
+                              #        return resultBuilder.build();
+                              #      }
+                              #      // ...
+                              #
+                              # Example (iOS / Obj-C):
+                              #
+                              #      // ...
+                              #      static UIColor* fromProto(Color* protocolor) {
+                              #         float red = [protocolor red];
+                              #         float green = [protocolor green];
+                              #         float blue = [protocolor blue];
+                              #         FloatValue* alpha_wrapper = [protocolor alpha];
+                              #         float alpha = 1.0;
+                              #         if (alpha_wrapper != nil) {
+                              #           alpha = [alpha_wrapper value];
+                              #         }
+                              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                              #      }
+                              #
+                              #      static Color* toProto(UIColor* color) {
+                              #          CGFloat red, green, blue, alpha;
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                              #            return nil;
+                              #          }
+                              #          Color* result = [[Color alloc] init];
+                              #          [result setRed:red];
+                              #          [result setGreen:green];
+                              #          [result setBlue:blue];
+                              #          if (alpha &lt;= 0.9999) {
+                              #            [result setAlpha:floatWrapperWithValue(alpha)];
+                              #          }
+                              #          [result autorelease];
+                              #          return result;
+                              #     }
+                              #     // ...
+                              #
+                              #  Example (JavaScript):
+                              #
+                              #     // ...
+                              #
+                              #     var protoToCssColor = function(rgb_color) {
+                              #        var redFrac = rgb_color.red || 0.0;
+                              #        var greenFrac = rgb_color.green || 0.0;
+                              #        var blueFrac = rgb_color.blue || 0.0;
+                              #        var red = Math.floor(redFrac * 255);
+                              #        var green = Math.floor(greenFrac * 255);
+                              #        var blue = Math.floor(blueFrac * 255);
+                              #
+                              #        if (!('alpha' in rgb_color)) {
+                              #           return rgbToCssColor_(red, green, blue);
+                              #        }
+                              #
+                              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                              #        var rgbParams = [red, green, blue].join(',');
+                              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                              #     };
+                              #
+                              #     var rgbToCssColor_ = function(red, green, blue) {
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                              #       var hexString = rgbNumber.toString(16);
+                              #       var missingZeros = 6 - hexString.length;
+                              #       var resultBuilder = ['#'];
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
+                              #          resultBuilder.push('0');
+                              #       }
+                              #       resultBuilder.push(hexString);
+                              #       return resultBuilder.join('');
+                              #     };
+                              #
+                              #     // ...
+                            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                # the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color. This
+                                # uses a wrapper message rather than a simple float scalar so that it is
+                                # possible to distinguish between a default value and the value being unset.
+                                # If omitted, this color object is to be rendered as a solid color
+                                # (as if the alpha value had been explicitly given with a value of 1.0).
+                            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                          },
+                        },
                         "strikethrough": True or False, # True if the text has a strikethrough.
                         "fontFamily": "A String", # The font family.
                         "fontSize": 42, # The size of the font.
@@ -90765,14 +191323,14 @@
                               #
                               #      static Color* toProto(UIColor* color) {
                               #          CGFloat red, green, blue, alpha;
-                              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                               #            return nil;
                               #          }
                               #          Color* result = [[Color alloc] init];
                               #          [result setRed:red];
                               #          [result setGreen:green];
                               #          [result setBlue:blue];
-                              #          if (alpha <= 0.9999) {
+                              #          if (alpha &lt;= 0.9999) {
                               #            [result setAlpha:floatWrapperWithValue(alpha)];
                               #          }
                               #          [result autorelease];
@@ -90802,11 +191360,11 @@
                               #     };
                               #
                               #     var rgbToCssColor_ = function(red, green, blue) {
-                              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                               #       var hexString = rgbNumber.toString(16);
                               #       var missingZeros = 6 - hexString.length;
                               #       var resultBuilder = ['#'];
-                              #       for (var i = 0; i < missingZeros; i++) {
+                              #       for (var i = 0; i &lt; missingZeros; i++) {
                               #          resultBuilder.push('0');
                               #       }
                               #       resultBuilder.push(hexString);
@@ -90830,6 +191388,144 @@
                             "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                           },
                           "bold": True or False, # True if the text is bold.
+                          "foregroundColorStyle": { # A color value. # The foreground color of the text.
+                              # If foreground_color is also set, this field takes precedence.
+                            "themeColor": "A String", # Theme color.
+                            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                                # for simplicity of conversion to/from color representations in various
+                                # languages over compactness; for example, the fields of this representation
+                                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                                # method in iOS; and, with just a little work, it can be easily formatted into
+                                # a CSS "rgba()" string in JavaScript, as well.
+                                #
+                                # Note: this proto does not carry information about the absolute color space
+                                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                                # space.
+                                #
+                                # Example (Java):
+                                #
+                                #      import com.google.type.Color;
+                                #
+                                #      // ...
+                                #      public static java.awt.Color fromProto(Color protocolor) {
+                                #        float alpha = protocolor.hasAlpha()
+                                #            ? protocolor.getAlpha().getValue()
+                                #            : 1.0;
+                                #
+                                #        return new java.awt.Color(
+                                #            protocolor.getRed(),
+                                #            protocolor.getGreen(),
+                                #            protocolor.getBlue(),
+                                #            alpha);
+                                #      }
+                                #
+                                #      public static Color toProto(java.awt.Color color) {
+                                #        float red = (float) color.getRed();
+                                #        float green = (float) color.getGreen();
+                                #        float blue = (float) color.getBlue();
+                                #        float denominator = 255.0;
+                                #        Color.Builder resultBuilder =
+                                #            Color
+                                #                .newBuilder()
+                                #                .setRed(red / denominator)
+                                #                .setGreen(green / denominator)
+                                #                .setBlue(blue / denominator);
+                                #        int alpha = color.getAlpha();
+                                #        if (alpha != 255) {
+                                #          result.setAlpha(
+                                #              FloatValue
+                                #                  .newBuilder()
+                                #                  .setValue(((float) alpha) / denominator)
+                                #                  .build());
+                                #        }
+                                #        return resultBuilder.build();
+                                #      }
+                                #      // ...
+                                #
+                                # Example (iOS / Obj-C):
+                                #
+                                #      // ...
+                                #      static UIColor* fromProto(Color* protocolor) {
+                                #         float red = [protocolor red];
+                                #         float green = [protocolor green];
+                                #         float blue = [protocolor blue];
+                                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                                #         float alpha = 1.0;
+                                #         if (alpha_wrapper != nil) {
+                                #           alpha = [alpha_wrapper value];
+                                #         }
+                                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                                #      }
+                                #
+                                #      static Color* toProto(UIColor* color) {
+                                #          CGFloat red, green, blue, alpha;
+                                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                                #            return nil;
+                                #          }
+                                #          Color* result = [[Color alloc] init];
+                                #          [result setRed:red];
+                                #          [result setGreen:green];
+                                #          [result setBlue:blue];
+                                #          if (alpha &lt;= 0.9999) {
+                                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                                #          }
+                                #          [result autorelease];
+                                #          return result;
+                                #     }
+                                #     // ...
+                                #
+                                #  Example (JavaScript):
+                                #
+                                #     // ...
+                                #
+                                #     var protoToCssColor = function(rgb_color) {
+                                #        var redFrac = rgb_color.red || 0.0;
+                                #        var greenFrac = rgb_color.green || 0.0;
+                                #        var blueFrac = rgb_color.blue || 0.0;
+                                #        var red = Math.floor(redFrac * 255);
+                                #        var green = Math.floor(greenFrac * 255);
+                                #        var blue = Math.floor(blueFrac * 255);
+                                #
+                                #        if (!('alpha' in rgb_color)) {
+                                #           return rgbToCssColor_(red, green, blue);
+                                #        }
+                                #
+                                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                                #        var rgbParams = [red, green, blue].join(',');
+                                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                                #     };
+                                #
+                                #     var rgbToCssColor_ = function(red, green, blue) {
+                                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                                #       var hexString = rgbNumber.toString(16);
+                                #       var missingZeros = 6 - hexString.length;
+                                #       var resultBuilder = ['#'];
+                                #       for (var i = 0; i &lt; missingZeros; i++) {
+                                #          resultBuilder.push('0');
+                                #       }
+                                #       resultBuilder.push(hexString);
+                                #       return resultBuilder.join('');
+                                #     };
+                                #
+                                #     // ...
+                              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                                  # the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color. This
+                                  # uses a wrapper message rather than a simple float scalar so that it is
+                                  # possible to distinguish between a default value and the value being unset.
+                                  # If omitted, this color object is to be rendered as a solid color
+                                  # (as if the alpha value had been explicitly given with a value of 1.0).
+                              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                            },
+                          },
                           "strikethrough": True or False, # True if the text has a strikethrough.
                           "fontFamily": "A String", # The font family.
                           "fontSize": 42, # The size of the font.
@@ -90849,6 +191545,16 @@
           { # A group over an interval of rows or columns on a sheet, which can contain or
               # be contained within other groups. A group can be collapsed or expanded as a
               # unit on the sheet.
+            "depth": 42, # The depth of the group, representing how many groups have a range that
+                # wholly contains the range of this group.
+            "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
+                # collapsed if an overlapping group at a shallower depth is expanded.
+                #
+                # A true value does not imply that all dimensions within the group are
+                # hidden, since a dimension's visibility can change independently from this
+                # group property. However, when this property is updated, all dimensions
+                # within it are set to hidden if this field is true, or set to visible if
+                # this field is false.
             "range": { # A range along a single dimension on a sheet. # The range over which this group exists.
                 # All indexes are zero-based.
                 # Indexes are half open: the start index is inclusive
@@ -90859,16 +191565,6 @@
               "sheetId": 42, # The sheet this span is on.
               "dimension": "A String", # The dimension of the span.
             },
-            "collapsed": True or False, # This field is true if this group is collapsed. A collapsed group remains
-                # collapsed if an overlapping group at a shallower depth is expanded.
-                #
-                # A true value does not imply that all dimensions within the group are
-                # hidden, since a dimension's visibility can change independently from this
-                # group property. However, when this property is updated, all dimensions
-                # within it are set to hidden if this field is true, or set to visible if
-                # this field is false.
-            "depth": 42, # The depth of the group, representing how many groups have a range that
-                # wholly contains the range of this group.
           },
         ],
       },
@@ -90929,9 +191625,164 @@
           # * a combination of the ISO language code and country code, such as `en_US`
           #
           # Note: when updating this field, not all locales/languages are supported.
+      "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
+      "spreadsheetTheme": { # Represents spreadsheet theme # Theme applied to the spreadsheet.
+        "themeColors": [ # The spreadsheet theme color pairs. To update you must provide all theme
+            # color pairs.
+          { # A pair mapping a spreadsheet theme color type to the concrete color it
+              # represents.
+            "color": { # A color value. # The concrete color corresponding to the theme color type.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
+            "colorType": "A String", # The type of the spreadsheet theme color.
+          },
+        ],
+        "primaryFontFamily": "A String", # / Name of the primary font family.
+      },
       "defaultFormat": { # The format of a cell. # The default format of all cells in the spreadsheet.
           # CellData.effectiveFormat will not be set if
           # the cell's format is equal to this default format. This field is read-only.
+        "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
+            # When updating padding, every field must be specified.
+          "top": 42, # The top padding of the cell.
+          "left": 42, # The left padding of the cell.
+          "right": 42, # The right padding of the cell.
+          "bottom": 42, # The bottom padding of the cell.
+        },
         "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user.
           "pattern": "A String", # Pattern string used for formatting.  If not set, a default pattern based on
               # the user's locale will be used if necessary for the given type.
@@ -90941,12 +191792,143 @@
               # When writing, this field must be set.
         },
         "textDirection": "A String", # The direction of the text in the cell.
-        "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell.
-            # When updating padding, every field must be specified.
-          "top": 42, # The top padding of the cell.
-          "left": 42, # The left padding of the cell.
-          "right": 42, # The right padding of the cell.
-          "bottom": 42, # The bottom padding of the cell.
+        "backgroundColorStyle": { # A color value. # The background color of the cell.
+            # If background_color is also set, this field takes precedence.
+          "themeColor": "A String", # Theme color.
+          "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+              # for simplicity of conversion to/from color representations in various
+              # languages over compactness; for example, the fields of this representation
+              # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+              # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+              # method in iOS; and, with just a little work, it can be easily formatted into
+              # a CSS "rgba()" string in JavaScript, as well.
+              #
+              # Note: this proto does not carry information about the absolute color space
+              # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+              # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+              # space.
+              #
+              # Example (Java):
+              #
+              #      import com.google.type.Color;
+              #
+              #      // ...
+              #      public static java.awt.Color fromProto(Color protocolor) {
+              #        float alpha = protocolor.hasAlpha()
+              #            ? protocolor.getAlpha().getValue()
+              #            : 1.0;
+              #
+              #        return new java.awt.Color(
+              #            protocolor.getRed(),
+              #            protocolor.getGreen(),
+              #            protocolor.getBlue(),
+              #            alpha);
+              #      }
+              #
+              #      public static Color toProto(java.awt.Color color) {
+              #        float red = (float) color.getRed();
+              #        float green = (float) color.getGreen();
+              #        float blue = (float) color.getBlue();
+              #        float denominator = 255.0;
+              #        Color.Builder resultBuilder =
+              #            Color
+              #                .newBuilder()
+              #                .setRed(red / denominator)
+              #                .setGreen(green / denominator)
+              #                .setBlue(blue / denominator);
+              #        int alpha = color.getAlpha();
+              #        if (alpha != 255) {
+              #          result.setAlpha(
+              #              FloatValue
+              #                  .newBuilder()
+              #                  .setValue(((float) alpha) / denominator)
+              #                  .build());
+              #        }
+              #        return resultBuilder.build();
+              #      }
+              #      // ...
+              #
+              # Example (iOS / Obj-C):
+              #
+              #      // ...
+              #      static UIColor* fromProto(Color* protocolor) {
+              #         float red = [protocolor red];
+              #         float green = [protocolor green];
+              #         float blue = [protocolor blue];
+              #         FloatValue* alpha_wrapper = [protocolor alpha];
+              #         float alpha = 1.0;
+              #         if (alpha_wrapper != nil) {
+              #           alpha = [alpha_wrapper value];
+              #         }
+              #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+              #      }
+              #
+              #      static Color* toProto(UIColor* color) {
+              #          CGFloat red, green, blue, alpha;
+              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+              #            return nil;
+              #          }
+              #          Color* result = [[Color alloc] init];
+              #          [result setRed:red];
+              #          [result setGreen:green];
+              #          [result setBlue:blue];
+              #          if (alpha &lt;= 0.9999) {
+              #            [result setAlpha:floatWrapperWithValue(alpha)];
+              #          }
+              #          [result autorelease];
+              #          return result;
+              #     }
+              #     // ...
+              #
+              #  Example (JavaScript):
+              #
+              #     // ...
+              #
+              #     var protoToCssColor = function(rgb_color) {
+              #        var redFrac = rgb_color.red || 0.0;
+              #        var greenFrac = rgb_color.green || 0.0;
+              #        var blueFrac = rgb_color.blue || 0.0;
+              #        var red = Math.floor(redFrac * 255);
+              #        var green = Math.floor(greenFrac * 255);
+              #        var blue = Math.floor(blueFrac * 255);
+              #
+              #        if (!('alpha' in rgb_color)) {
+              #           return rgbToCssColor_(red, green, blue);
+              #        }
+              #
+              #        var alphaFrac = rgb_color.alpha.value || 0.0;
+              #        var rgbParams = [red, green, blue].join(',');
+              #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+              #     };
+              #
+              #     var rgbToCssColor_ = function(red, green, blue) {
+              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+              #       var hexString = rgbNumber.toString(16);
+              #       var missingZeros = 6 - hexString.length;
+              #       var resultBuilder = ['#'];
+              #       for (var i = 0; i &lt; missingZeros; i++) {
+              #          resultBuilder.push('0');
+              #       }
+              #       resultBuilder.push(hexString);
+              #       return resultBuilder.join('');
+              #     };
+              #
+              #     // ...
+            "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+            "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                # the final pixel color is defined by the equation:
+                #
+                #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                #
+                # This means that a value of 1.0 corresponds to a solid color, whereas
+                # a value of 0.0 corresponds to a completely transparent color. This
+                # uses a wrapper message rather than a simple float scalar so that it is
+                # possible to distinguish between a default value and the value being unset.
+                # If omitted, this color object is to be rendered as a solid color
+                # (as if the alpha value had been explicitly given with a value of 1.0).
+            "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+            "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+          },
         },
         "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
         "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -91019,14 +192001,14 @@
             #
             #      static Color* toProto(UIColor* color) {
             #          CGFloat red, green, blue, alpha;
-            #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+            #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
             #            return nil;
             #          }
             #          Color* result = [[Color alloc] init];
             #          [result setRed:red];
             #          [result setGreen:green];
             #          [result setBlue:blue];
-            #          if (alpha <= 0.9999) {
+            #          if (alpha &lt;= 0.9999) {
             #            [result setAlpha:floatWrapperWithValue(alpha)];
             #          }
             #          [result autorelease];
@@ -91056,11 +192038,11 @@
             #     };
             #
             #     var rgbToCssColor_ = function(red, green, blue) {
-            #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+            #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
             #       var hexString = rgbNumber.toString(16);
             #       var missingZeros = 6 - hexString.length;
             #       var resultBuilder = ['#'];
-            #       for (var i = 0; i < missingZeros; i++) {
+            #       for (var i = 0; i &lt; missingZeros; i++) {
             #          resultBuilder.push('0');
             #       }
             #       resultBuilder.push(hexString);
@@ -91156,14 +192138,14 @@
                 #
                 #      static Color* toProto(UIColor* color) {
                 #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                 #            return nil;
                 #          }
                 #          Color* result = [[Color alloc] init];
                 #          [result setRed:red];
                 #          [result setGreen:green];
                 #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
+                #          if (alpha &lt;= 0.9999) {
                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                 #          }
                 #          [result autorelease];
@@ -91193,11 +192175,11 @@
                 #     };
                 #
                 #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                 #       var hexString = rgbNumber.toString(16);
                 #       var missingZeros = 6 - hexString.length;
                 #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
+                #       for (var i = 0; i &lt; missingZeros; i++) {
                 #          resultBuilder.push('0');
                 #       }
                 #       resultBuilder.push(hexString);
@@ -91222,284 +192204,144 @@
             },
             "width": 42, # The width of the border, in pixels.
                 # Deprecated; the width is determined by the "style" field.
-            "style": "A String", # The style of the border.
-          },
-          "right": { # A border along a cell. # The right border of the cell.
-            "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                # for simplicity of conversion to/from color representations in various
-                # languages over compactness; for example, the fields of this representation
-                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                # method in iOS; and, with just a little work, it can be easily formatted into
-                # a CSS "rgba()" string in JavaScript, as well.
-                #
-                # Note: this proto does not carry information about the absolute color space
-                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                # space.
-                #
-                # Example (Java):
-                #
-                #      import com.google.type.Color;
-                #
-                #      // ...
-                #      public static java.awt.Color fromProto(Color protocolor) {
-                #        float alpha = protocolor.hasAlpha()
-                #            ? protocolor.getAlpha().getValue()
-                #            : 1.0;
-                #
-                #        return new java.awt.Color(
-                #            protocolor.getRed(),
-                #            protocolor.getGreen(),
-                #            protocolor.getBlue(),
-                #            alpha);
-                #      }
-                #
-                #      public static Color toProto(java.awt.Color color) {
-                #        float red = (float) color.getRed();
-                #        float green = (float) color.getGreen();
-                #        float blue = (float) color.getBlue();
-                #        float denominator = 255.0;
-                #        Color.Builder resultBuilder =
-                #            Color
-                #                .newBuilder()
-                #                .setRed(red / denominator)
-                #                .setGreen(green / denominator)
-                #                .setBlue(blue / denominator);
-                #        int alpha = color.getAlpha();
-                #        if (alpha != 255) {
-                #          result.setAlpha(
-                #              FloatValue
-                #                  .newBuilder()
-                #                  .setValue(((float) alpha) / denominator)
-                #                  .build());
-                #        }
-                #        return resultBuilder.build();
-                #      }
-                #      // ...
-                #
-                # Example (iOS / Obj-C):
-                #
-                #      // ...
-                #      static UIColor* fromProto(Color* protocolor) {
-                #         float red = [protocolor red];
-                #         float green = [protocolor green];
-                #         float blue = [protocolor blue];
-                #         FloatValue* alpha_wrapper = [protocolor alpha];
-                #         float alpha = 1.0;
-                #         if (alpha_wrapper != nil) {
-                #           alpha = [alpha_wrapper value];
-                #         }
-                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                #      }
-                #
-                #      static Color* toProto(UIColor* color) {
-                #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                #            return nil;
-                #          }
-                #          Color* result = [[Color alloc] init];
-                #          [result setRed:red];
-                #          [result setGreen:green];
-                #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
-                #            [result setAlpha:floatWrapperWithValue(alpha)];
-                #          }
-                #          [result autorelease];
-                #          return result;
-                #     }
-                #     // ...
-                #
-                #  Example (JavaScript):
-                #
-                #     // ...
-                #
-                #     var protoToCssColor = function(rgb_color) {
-                #        var redFrac = rgb_color.red || 0.0;
-                #        var greenFrac = rgb_color.green || 0.0;
-                #        var blueFrac = rgb_color.blue || 0.0;
-                #        var red = Math.floor(redFrac * 255);
-                #        var green = Math.floor(greenFrac * 255);
-                #        var blue = Math.floor(blueFrac * 255);
-                #
-                #        if (!('alpha' in rgb_color)) {
-                #           return rgbToCssColor_(red, green, blue);
-                #        }
-                #
-                #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                #        var rgbParams = [red, green, blue].join(',');
-                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                #     };
-                #
-                #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                #       var hexString = rgbNumber.toString(16);
-                #       var missingZeros = 6 - hexString.length;
-                #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
-                #          resultBuilder.push('0');
-                #       }
-                #       resultBuilder.push(hexString);
-                #       return resultBuilder.join('');
-                #     };
-                #
-                #     // ...
-              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                  # the final pixel color is defined by the equation:
+            "colorStyle": { # A color value. # The color of the border.
+                # If color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
                   #
-                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
                   #
-                  # This means that a value of 1.0 corresponds to a solid color, whereas
-                  # a value of 0.0 corresponds to a completely transparent color. This
-                  # uses a wrapper message rather than a simple float scalar so that it is
-                  # possible to distinguish between a default value and the value being unset.
-                  # If omitted, this color object is to be rendered as a solid color
-                  # (as if the alpha value had been explicitly given with a value of 1.0).
-              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
             },
-            "width": 42, # The width of the border, in pixels.
-                # Deprecated; the width is determined by the "style" field.
-            "style": "A String", # The style of the border.
-          },
-          "bottom": { # A border along a cell. # The bottom border of the cell.
-            "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
-                # for simplicity of conversion to/from color representations in various
-                # languages over compactness; for example, the fields of this representation
-                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
-                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
-                # method in iOS; and, with just a little work, it can be easily formatted into
-                # a CSS "rgba()" string in JavaScript, as well.
-                #
-                # Note: this proto does not carry information about the absolute color space
-                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
-                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
-                # space.
-                #
-                # Example (Java):
-                #
-                #      import com.google.type.Color;
-                #
-                #      // ...
-                #      public static java.awt.Color fromProto(Color protocolor) {
-                #        float alpha = protocolor.hasAlpha()
-                #            ? protocolor.getAlpha().getValue()
-                #            : 1.0;
-                #
-                #        return new java.awt.Color(
-                #            protocolor.getRed(),
-                #            protocolor.getGreen(),
-                #            protocolor.getBlue(),
-                #            alpha);
-                #      }
-                #
-                #      public static Color toProto(java.awt.Color color) {
-                #        float red = (float) color.getRed();
-                #        float green = (float) color.getGreen();
-                #        float blue = (float) color.getBlue();
-                #        float denominator = 255.0;
-                #        Color.Builder resultBuilder =
-                #            Color
-                #                .newBuilder()
-                #                .setRed(red / denominator)
-                #                .setGreen(green / denominator)
-                #                .setBlue(blue / denominator);
-                #        int alpha = color.getAlpha();
-                #        if (alpha != 255) {
-                #          result.setAlpha(
-                #              FloatValue
-                #                  .newBuilder()
-                #                  .setValue(((float) alpha) / denominator)
-                #                  .build());
-                #        }
-                #        return resultBuilder.build();
-                #      }
-                #      // ...
-                #
-                # Example (iOS / Obj-C):
-                #
-                #      // ...
-                #      static UIColor* fromProto(Color* protocolor) {
-                #         float red = [protocolor red];
-                #         float green = [protocolor green];
-                #         float blue = [protocolor blue];
-                #         FloatValue* alpha_wrapper = [protocolor alpha];
-                #         float alpha = 1.0;
-                #         if (alpha_wrapper != nil) {
-                #           alpha = [alpha_wrapper value];
-                #         }
-                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
-                #      }
-                #
-                #      static Color* toProto(UIColor* color) {
-                #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
-                #            return nil;
-                #          }
-                #          Color* result = [[Color alloc] init];
-                #          [result setRed:red];
-                #          [result setGreen:green];
-                #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
-                #            [result setAlpha:floatWrapperWithValue(alpha)];
-                #          }
-                #          [result autorelease];
-                #          return result;
-                #     }
-                #     // ...
-                #
-                #  Example (JavaScript):
-                #
-                #     // ...
-                #
-                #     var protoToCssColor = function(rgb_color) {
-                #        var redFrac = rgb_color.red || 0.0;
-                #        var greenFrac = rgb_color.green || 0.0;
-                #        var blueFrac = rgb_color.blue || 0.0;
-                #        var red = Math.floor(redFrac * 255);
-                #        var green = Math.floor(greenFrac * 255);
-                #        var blue = Math.floor(blueFrac * 255);
-                #
-                #        if (!('alpha' in rgb_color)) {
-                #           return rgbToCssColor_(red, green, blue);
-                #        }
-                #
-                #        var alphaFrac = rgb_color.alpha.value || 0.0;
-                #        var rgbParams = [red, green, blue].join(',');
-                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
-                #     };
-                #
-                #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
-                #       var hexString = rgbNumber.toString(16);
-                #       var missingZeros = 6 - hexString.length;
-                #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
-                #          resultBuilder.push('0');
-                #       }
-                #       resultBuilder.push(hexString);
-                #       return resultBuilder.join('');
-                #     };
-                #
-                #     // ...
-              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
-              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
-                  # the final pixel color is defined by the equation:
-                  #
-                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
-                  #
-                  # This means that a value of 1.0 corresponds to a solid color, whereas
-                  # a value of 0.0 corresponds to a completely transparent color. This
-                  # uses a wrapper message rather than a simple float scalar so that it is
-                  # possible to distinguish between a default value and the value being unset.
-                  # If omitted, this color object is to be rendered as a solid color
-                  # (as if the alpha value had been explicitly given with a value of 1.0).
-              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
-              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
-            },
-            "width": 42, # The width of the border, in pixels.
-                # Deprecated; the width is determined by the "style" field.
             "style": "A String", # The style of the border.
           },
           "left": { # A border along a cell. # The left border of the cell.
@@ -91573,14 +192415,14 @@
                 #
                 #      static Color* toProto(UIColor* color) {
                 #          CGFloat red, green, blue, alpha;
-                #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
                 #            return nil;
                 #          }
                 #          Color* result = [[Color alloc] init];
                 #          [result setRed:red];
                 #          [result setGreen:green];
                 #          [result setBlue:blue];
-                #          if (alpha <= 0.9999) {
+                #          if (alpha &lt;= 0.9999) {
                 #            [result setAlpha:floatWrapperWithValue(alpha)];
                 #          }
                 #          [result autorelease];
@@ -91610,11 +192452,11 @@
                 #     };
                 #
                 #     var rgbToCssColor_ = function(red, green, blue) {
-                #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
                 #       var hexString = rgbNumber.toString(16);
                 #       var missingZeros = 6 - hexString.length;
                 #       var resultBuilder = ['#'];
-                #       for (var i = 0; i < missingZeros; i++) {
+                #       for (var i = 0; i &lt; missingZeros; i++) {
                 #          resultBuilder.push('0');
                 #       }
                 #       resultBuilder.push(hexString);
@@ -91639,6 +192481,698 @@
             },
             "width": 42, # The width of the border, in pixels.
                 # Deprecated; the width is determined by the "style" field.
+            "colorStyle": { # A color value. # The color of the border.
+                # If color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
+            "style": "A String", # The style of the border.
+          },
+          "right": { # A border along a cell. # The right border of the cell.
+            "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
+            "width": 42, # The width of the border, in pixels.
+                # Deprecated; the width is determined by the "style" field.
+            "colorStyle": { # A color value. # The color of the border.
+                # If color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
+            "style": "A String", # The style of the border.
+          },
+          "bottom": { # A border along a cell. # The bottom border of the cell.
+            "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
+            "width": 42, # The width of the border, in pixels.
+                # Deprecated; the width is determined by the "style" field.
+            "colorStyle": { # A color value. # The color of the border.
+                # If color is also set, this field takes precedence.
+              "themeColor": "A String", # Theme color.
+              "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                  # for simplicity of conversion to/from color representations in various
+                  # languages over compactness; for example, the fields of this representation
+                  # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                  # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                  # method in iOS; and, with just a little work, it can be easily formatted into
+                  # a CSS "rgba()" string in JavaScript, as well.
+                  #
+                  # Note: this proto does not carry information about the absolute color space
+                  # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                  # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                  # space.
+                  #
+                  # Example (Java):
+                  #
+                  #      import com.google.type.Color;
+                  #
+                  #      // ...
+                  #      public static java.awt.Color fromProto(Color protocolor) {
+                  #        float alpha = protocolor.hasAlpha()
+                  #            ? protocolor.getAlpha().getValue()
+                  #            : 1.0;
+                  #
+                  #        return new java.awt.Color(
+                  #            protocolor.getRed(),
+                  #            protocolor.getGreen(),
+                  #            protocolor.getBlue(),
+                  #            alpha);
+                  #      }
+                  #
+                  #      public static Color toProto(java.awt.Color color) {
+                  #        float red = (float) color.getRed();
+                  #        float green = (float) color.getGreen();
+                  #        float blue = (float) color.getBlue();
+                  #        float denominator = 255.0;
+                  #        Color.Builder resultBuilder =
+                  #            Color
+                  #                .newBuilder()
+                  #                .setRed(red / denominator)
+                  #                .setGreen(green / denominator)
+                  #                .setBlue(blue / denominator);
+                  #        int alpha = color.getAlpha();
+                  #        if (alpha != 255) {
+                  #          result.setAlpha(
+                  #              FloatValue
+                  #                  .newBuilder()
+                  #                  .setValue(((float) alpha) / denominator)
+                  #                  .build());
+                  #        }
+                  #        return resultBuilder.build();
+                  #      }
+                  #      // ...
+                  #
+                  # Example (iOS / Obj-C):
+                  #
+                  #      // ...
+                  #      static UIColor* fromProto(Color* protocolor) {
+                  #         float red = [protocolor red];
+                  #         float green = [protocolor green];
+                  #         float blue = [protocolor blue];
+                  #         FloatValue* alpha_wrapper = [protocolor alpha];
+                  #         float alpha = 1.0;
+                  #         if (alpha_wrapper != nil) {
+                  #           alpha = [alpha_wrapper value];
+                  #         }
+                  #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                  #      }
+                  #
+                  #      static Color* toProto(UIColor* color) {
+                  #          CGFloat red, green, blue, alpha;
+                  #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                  #            return nil;
+                  #          }
+                  #          Color* result = [[Color alloc] init];
+                  #          [result setRed:red];
+                  #          [result setGreen:green];
+                  #          [result setBlue:blue];
+                  #          if (alpha &lt;= 0.9999) {
+                  #            [result setAlpha:floatWrapperWithValue(alpha)];
+                  #          }
+                  #          [result autorelease];
+                  #          return result;
+                  #     }
+                  #     // ...
+                  #
+                  #  Example (JavaScript):
+                  #
+                  #     // ...
+                  #
+                  #     var protoToCssColor = function(rgb_color) {
+                  #        var redFrac = rgb_color.red || 0.0;
+                  #        var greenFrac = rgb_color.green || 0.0;
+                  #        var blueFrac = rgb_color.blue || 0.0;
+                  #        var red = Math.floor(redFrac * 255);
+                  #        var green = Math.floor(greenFrac * 255);
+                  #        var blue = Math.floor(blueFrac * 255);
+                  #
+                  #        if (!('alpha' in rgb_color)) {
+                  #           return rgbToCssColor_(red, green, blue);
+                  #        }
+                  #
+                  #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                  #        var rgbParams = [red, green, blue].join(',');
+                  #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                  #     };
+                  #
+                  #     var rgbToCssColor_ = function(red, green, blue) {
+                  #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                  #       var hexString = rgbNumber.toString(16);
+                  #       var missingZeros = 6 - hexString.length;
+                  #       var resultBuilder = ['#'];
+                  #       for (var i = 0; i &lt; missingZeros; i++) {
+                  #          resultBuilder.push('0');
+                  #       }
+                  #       resultBuilder.push(hexString);
+                  #       return resultBuilder.join('');
+                  #     };
+                  #
+                  #     // ...
+                "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+                "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                    # the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color. This
+                    # uses a wrapper message rather than a simple float scalar so that it is
+                    # possible to distinguish between a default value and the value being unset.
+                    # If omitted, this color object is to be rendered as a solid color
+                    # (as if the alpha value had been explicitly given with a value of 1.0).
+                "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+                "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+              },
+            },
             "style": "A String", # The style of the border.
           },
         },
@@ -91736,14 +193270,14 @@
               #
               #      static Color* toProto(UIColor* color) {
               #          CGFloat red, green, blue, alpha;
-              #          if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+              #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
               #            return nil;
               #          }
               #          Color* result = [[Color alloc] init];
               #          [result setRed:red];
               #          [result setGreen:green];
               #          [result setBlue:blue];
-              #          if (alpha <= 0.9999) {
+              #          if (alpha &lt;= 0.9999) {
               #            [result setAlpha:floatWrapperWithValue(alpha)];
               #          }
               #          [result autorelease];
@@ -91773,11 +193307,11 @@
               #     };
               #
               #     var rgbToCssColor_ = function(red, green, blue) {
-              #       var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+              #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
               #       var hexString = rgbNumber.toString(16);
               #       var missingZeros = 6 - hexString.length;
               #       var resultBuilder = ['#'];
-              #       for (var i = 0; i < missingZeros; i++) {
+              #       for (var i = 0; i &lt; missingZeros; i++) {
               #          resultBuilder.push('0');
               #       }
               #       resultBuilder.push(hexString);
@@ -91801,6 +193335,144 @@
             "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
           },
           "bold": True or False, # True if the text is bold.
+          "foregroundColorStyle": { # A color value. # The foreground color of the text.
+              # If foreground_color is also set, this field takes precedence.
+            "themeColor": "A String", # Theme color.
+            "rgbColor": { # Represents a color in the RGBA color space. This representation is designed # RGB color.
+                # for simplicity of conversion to/from color representations in various
+                # languages over compactness; for example, the fields of this representation
+                # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+                # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+                # method in iOS; and, with just a little work, it can be easily formatted into
+                # a CSS "rgba()" string in JavaScript, as well.
+                #
+                # Note: this proto does not carry information about the absolute color space
+                # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+                # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+                # space.
+                #
+                # Example (Java):
+                #
+                #      import com.google.type.Color;
+                #
+                #      // ...
+                #      public static java.awt.Color fromProto(Color protocolor) {
+                #        float alpha = protocolor.hasAlpha()
+                #            ? protocolor.getAlpha().getValue()
+                #            : 1.0;
+                #
+                #        return new java.awt.Color(
+                #            protocolor.getRed(),
+                #            protocolor.getGreen(),
+                #            protocolor.getBlue(),
+                #            alpha);
+                #      }
+                #
+                #      public static Color toProto(java.awt.Color color) {
+                #        float red = (float) color.getRed();
+                #        float green = (float) color.getGreen();
+                #        float blue = (float) color.getBlue();
+                #        float denominator = 255.0;
+                #        Color.Builder resultBuilder =
+                #            Color
+                #                .newBuilder()
+                #                .setRed(red / denominator)
+                #                .setGreen(green / denominator)
+                #                .setBlue(blue / denominator);
+                #        int alpha = color.getAlpha();
+                #        if (alpha != 255) {
+                #          result.setAlpha(
+                #              FloatValue
+                #                  .newBuilder()
+                #                  .setValue(((float) alpha) / denominator)
+                #                  .build());
+                #        }
+                #        return resultBuilder.build();
+                #      }
+                #      // ...
+                #
+                # Example (iOS / Obj-C):
+                #
+                #      // ...
+                #      static UIColor* fromProto(Color* protocolor) {
+                #         float red = [protocolor red];
+                #         float green = [protocolor green];
+                #         float blue = [protocolor blue];
+                #         FloatValue* alpha_wrapper = [protocolor alpha];
+                #         float alpha = 1.0;
+                #         if (alpha_wrapper != nil) {
+                #           alpha = [alpha_wrapper value];
+                #         }
+                #         return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+                #      }
+                #
+                #      static Color* toProto(UIColor* color) {
+                #          CGFloat red, green, blue, alpha;
+                #          if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
+                #            return nil;
+                #          }
+                #          Color* result = [[Color alloc] init];
+                #          [result setRed:red];
+                #          [result setGreen:green];
+                #          [result setBlue:blue];
+                #          if (alpha &lt;= 0.9999) {
+                #            [result setAlpha:floatWrapperWithValue(alpha)];
+                #          }
+                #          [result autorelease];
+                #          return result;
+                #     }
+                #     // ...
+                #
+                #  Example (JavaScript):
+                #
+                #     // ...
+                #
+                #     var protoToCssColor = function(rgb_color) {
+                #        var redFrac = rgb_color.red || 0.0;
+                #        var greenFrac = rgb_color.green || 0.0;
+                #        var blueFrac = rgb_color.blue || 0.0;
+                #        var red = Math.floor(redFrac * 255);
+                #        var green = Math.floor(greenFrac * 255);
+                #        var blue = Math.floor(blueFrac * 255);
+                #
+                #        if (!('alpha' in rgb_color)) {
+                #           return rgbToCssColor_(red, green, blue);
+                #        }
+                #
+                #        var alphaFrac = rgb_color.alpha.value || 0.0;
+                #        var rgbParams = [red, green, blue].join(',');
+                #        return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+                #     };
+                #
+                #     var rgbToCssColor_ = function(red, green, blue) {
+                #       var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
+                #       var hexString = rgbNumber.toString(16);
+                #       var missingZeros = 6 - hexString.length;
+                #       var resultBuilder = ['#'];
+                #       for (var i = 0; i &lt; missingZeros; i++) {
+                #          resultBuilder.push('0');
+                #       }
+                #       resultBuilder.push(hexString);
+                #       return resultBuilder.join('');
+                #     };
+                #
+                #     // ...
+              "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+              "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+                  # the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color. This
+                  # uses a wrapper message rather than a simple float scalar so that it is
+                  # possible to distinguish between a default value and the value being unset.
+                  # If omitted, this color object is to be rendered as a solid color
+                  # (as if the alpha value had been explicitly given with a value of 1.0).
+              "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+              "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+            },
+          },
           "strikethrough": True or False, # True if the text has a strikethrough.
           "fontFamily": "A String", # The font family.
           "fontSize": 42, # The size of the font.
@@ -91809,10 +193481,9 @@
         },
         "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
       },
-      "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
       "iterativeCalculationSettings": { # Settings to control how circular dependencies are resolved with iterative # Determines whether and how circular references are resolved with iterative
-          # calculation.  Absence of this field means that circular references will
-          # result in calculation errors.
+          # calculation.  Absence of this field means that circular references result
+          # in calculation errors.
           # calculation.
         "convergenceThreshold": 3.14, # When iterative calculation is enabled and successive results differ by
             # less than this threshold value, the calculation rounds stop.